这算是ASP.NET MVC的一个大BUG吗?

Lacie ·
更新时间:2024-09-20
· 897 次阅读

  这是昨天一个同事遇到的问题,我觉得这是一个蛮大的问题,而且不像是ASP.NET MVC的设计者有意为之,换言之,这可能是ASP.NET MVC的一个Bug(不过也有可能是保持原始请求数据而作的妥协)。StackOverflow上也有对这个问题的描述http://stackoverflow.com/questions/1775170/asp-net-mvc-modelstate-clear   闲话少说,我们通过一个简单的问题重新这个问题。首先我们 定义了如下一个默认的HomeController,它具有一个默认Action方法Index。该方法接受一个类型为DemoModel的参数,定义其中的逻辑非常简单:我们对该参数的三个属性略加修改后,将其作为Model呈现在对应的View中。 public class HomeController : Controller { public ActionResult Index(DemoModel model) { model.Foo += ":Changed"; model.Bar += ":Changed"; model.Baz += ":Changed"; return View("index", mode); } } public class DemoModel { public string Foo { get; set; } public string Bar { get; set; } public string Baz { get; set; } }   对于Action方法Index对应的View(Index.cshtml),我们可以采用如下三种定义方式将Model对象以编译模式呈现出来。 //第一种形式 @model DemoModel @Html.LabelFor(m=>m.Foo) @Html.TextBoxFor(m => m.Foo) @Html.LabelFor(m => m.Bar) @Html.TextBoxFor(m => m.Bar) @Html.LabelFor(m => m.Baz) @Html.TextBoxFor(m => m.Baz) //第二种形式 @model DemoModel @Html.LabelFor(m=>m.Foo) @Html.EditorFor (m => m.Foo) @Html.LabelFor(m => m.Bar) @Html.EditorFor (m => m.Bar) @Html.LabelFor(m => m.Baz) @Html.EditorFor (m => m.Baz) //第三种形式 @model DemoModel @Html.EditorForModel



net ASP.NET asp.net mvc MVC ASP

需要 登录 后方可回复, 如果你还没有账号请 注册新账号