这可能是我想念的傻事,但我肯定迷失了。我正在使用.NET 4 RC和VS 2010.这也是我第一次尝试在.NET 4中使用UpdateModel,但每次调用它时,我都会得到一个异常,即Value cannont为null或为空。我有一个名为LogOnModel的简单ViewModel:
[MetadataType(typeof(LogOnModelMD))]
public class LogOnModel
{
public string Username { get; set; }
public string Password { get; set; }
public class LogOnModelMD
{
[StringLength(3), Required]
public object Username { get; set; }
[StringLength(3), Required]
public object Password { get; set; }
}
}
我的视图使用MVC2中新的强类型帮助程序生成用户名的文本框和密码的文本框。当我在我的控制器方法中查看FormCollection时,我看到两者的值都会通过。
最后但并非最不重要的是,这里是后控制器方法:
// POST: /LogOn/
[HttpPost]
public ActionResult Index(FormCollection form)
{
var lm = new LogOnModel();
UpdateModel(lm, form);
var aservice = new AuthenticationService();
if (!aservice.AuthenticateLocal(lm.Username, lm.Password))
{
ModelState.AddModelError("User", "The username or password submitted is invalid, please try again.");
return View(lm);
}
return Redirect("~/Home");
}
有人可以了解一下为什么UpdateModel会抛出此异常吗?谢谢!
答案 0 :(得分:0)
MVC 2早期预览的已知问题。这是针对MVC 2 RTM修复的。您可以从http://www.asp.net/mvc/下载MVC 2 RTM。有关如何将此安装评估为VS2010 RC的信息,请访问http://haacked.com/archive/2010/02/10/installing-asp-net-mvc-2-rc-2-on-visual-studio.aspx。