UpdateModel()アプリを ASP.NET MVC 1 から MVC 3 に変換していますが、フォームを送信するときに呼び出すときに問題が発生しました。
ここに私のモデルクラスがあります:
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 を null のままにすると、MVC 1 で正常に動作します。しかし、MVC 3 では、呼び出すと、TestModel クラスUpdateModel(tm)の行で例外がスローされます。return SubValue.Value - Age;
に行って変更SubValue.ValueすることもできますSubValue.GetValueOrDefault()が、そうする必要はありません。MVC のバージョン間でこの変更が行われたのはなぜですか?