我正在将应用程序从 ASP.NET MVC 1 转换为 MVC 3,但UpdateModel()
在提交表单时调用时遇到了一些问题。
这是我的模型类:
public class TestModel
{
public string Name { get; set; }
public string Description { get; set; }
public int Age { get; set; }
public int? SubValue { get; set; }
public int AgeSub
{
get
{
return SubValue.Value - Age;
}
}
}
在我的控制器中:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult TestModelSave()
{
TestModel tm = new TestModel();
try
{
UpdateModel(tm);
if (ModelState.IsValid)
{
return RedirectToAction("TestModelEdit");
}
}
catch
{
}
return View("TestModelEdit", tm);
}
如果我在提交时将 SubValue 保留为空,则在 MVC 1 中它可以正常工作。但是在 MVC 3 中,当我调用它时,会在 TestModel 类UpdateModel(tm)
的行中引发异常。return SubValue.Value - Age;
我可以去更改SubValue.Value
为SubValue.GetValueOrDefault()
,但我不想这样做。为什么在 MVC 版本之间进行这种更改?