一般情况下,此错误表示模型绑定失败或数据类型不匹配。解决方法如下:
[HttpPost]
public ActionResult MyAction(MyViewModel model)
{
if (ModelState.IsValid)
{
// 执行业务逻辑
return RedirectToAction("Success");
}
else
{
// 获取错误信息
var errors = ModelState.Values.SelectMany(v => v.Errors);
// 显示错误与Model
return View("Error", model);
}
}
public class MyController : Controller
{
public MyController()
{
ModelBinderProviders.BinderProviders.Insert(0, new MyModelBinderProvider());
}
}
其中MyModelBinderProvider是自定义的模型绑定提供程序,需要继承ModelBinderProvider并实现GetBinder方法。
public class MyModelBinderProvider : ModelBinderProvider
{
public override IModelBinder GetBinder(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
if (/* 判断要绑定的类型符合条件 */)
{
return new MyModelBinder();
}
else
{
return null;
}
}
}
其中MyModelBinder是自定义的模型绑定器,需要继承IModelBinder并实现BindModel方法。在BindModel方法中可以根据需要实
上一篇:ASP.NETMVC中出现“在EntityFramework.SqlServer.dll中抛出异常:System.NotSupportedException
下一篇:ASP.NETMVC中从部分视图(PostdynamicformdatafrompartialviewinASP.NETMVC)提交动态表单数据的方法。