MVC3 应用程序中的模型绑定将 null 传递给 Mono 下的操作参数
在 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 应用程序 - 有人经历过类似的事情吗?
A simple controller action that is posted to which takes a model used by the view's form isn't being bound to the form fields when running under Mono 2.10.1. Under MS.NET the same code executes as expected with the model populated with the corresponding form values.
The controller action is defined as:
[HttpPost]
public ActionResult Login(LoginModel login, string returnUrl)
{
The first parameter login
is null when the form is submitted on Mono, and fully populated with the login form fields under MS.NET.
The form fields are accessible via the Request.Form
collection (ie Request.Form["UserName"]
) under Mono, so it seems to just be the binding that isn't working.
This used to be an MVC2 app - anyone experienced something similar?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我追踪到了一个自定义数据注释模型验证提供程序,我们注册该提供程序来处理我们自己的本地化错误消息的方式,例如模型属性上的“必需”和“显示名称”。
注释掉以下行:
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(LocalizedRequiredAttribute), typeof(RequiredAttributeAdapter));
来自全球的 asax 修复了这个问题,并且自定义模型验证器仍然有效 - 看起来这是 MVC2 时代的一个遗留问题。
I tracked this down to a custom data annotations model validation provider that we register to handle our own way of localizing error messages such as Required and Display Name on model properties.
Commenting out the following line:
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(LocalizedRequiredAttribute), typeof(RequiredAttributeAdapter));
From global asax fixes the issue, and the custom model validator still works - looks like it was a hang over from MVC2 days.