MVC3应用程序中的模型绑定在Mono下将null传递给action参数

时间:2011-04-17 08:29:32

标签: asp.net asp.net-mvc-3 mono model-binding

在Mono 2.10.1下运行时,发布到视图表单使用的模型的简单控制器操作不会绑定到表单字段。在MS.NET下,相同的代码按预期执行,并使用相应的表单值填充模型。

控制器操作定义为:

[HttpPost]
public ActionResult Login(LoginModel login, string returnUrl)
{

当表单在Mono上提交时,第一个参数login为null,并且完全填充了MS.NET下的登录表单字段。

表单字段可以通过Mono下的Request.Form集合(即Request.Form["UserName"])访问,因此它似乎只是不起作用的绑定。

这曾经是一个MVC2应用程序 - 任何人都经历过类似的事情?

1 个答案:

答案 0 :(得分:0)

我将其跟踪到自定义数据注释模型验证提供程序,我们注册这些提供程序以处理我们自己的方法来定位错误消息,例如模型属性上的必需和显示名称。

评论以下一行:

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(LocalizedRequiredAttribute),typeof(RequiredAttributeAdapter));

来自全局的asax修复了这个问题,自定义模型验证器仍然可以工作 - 看起来它是MVC2时代的遗留问题。