在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应用程序 - 任何人都经历过类似的事情?
答案 0 :(得分:0)
我将其跟踪到自定义数据注释模型验证提供程序,我们注册这些提供程序以处理我们自己的方法来定位错误消息,例如模型属性上的必需和显示名称。
评论以下一行:
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(LocalizedRequiredAttribute),typeof(RequiredAttributeAdapter));
来自全局的asax修复了这个问题,自定义模型验证器仍然可以工作 - 看起来它是MVC2时代的遗留问题。