新建類,int[]數組模型綁定
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Koukou.Admin.ModelBinder
{
public class IntArrayModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (value == null || string.IsNullOrEmpty(value.AttemptedValue))
{
return null;
}
return value
.AttemptedValue
.Split(',')
.Select(int.Parse)
.ToArray();
}
}
}
string[] 數組模型綁定
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Koukou.Admin.ModelBinder
{
public class StringArrayModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (value == null || string.IsNullOrEmpty(value.AttemptedValue))
{
return null;
}
return value
.AttemptedValue
.Split(new string[] { ",", Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
// 逗號“,” 和 換行符 作為分隔
}
}
}
在global.asax的Application_Start注冊
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
//自定義model綁定
ModelBinders.Binders.Add(typeof(int[]), new ModelBinder.IntArrayModelBinder());
ModelBinders.Binders.Add(typeof(string[]), new ModelBinder.StringArrayModelBinder());
}
