4
所以我有这三条线:为什么我的textBoxFor使用我的路线数据?
<div style="background-color: lightgreen;">@Html.TextBoxFor(m => m.Id)</div>
<div style="background-color: green;">@Html.DisplayTextFor(m => m.Id)</div>
<div style="background-color: pink;">@Model.Id</div>
我已经确定的是,浅绿值是不是我Model.Id而是由我的路线设置ID:
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "MyFunController", action = "Index", id = UrlParameter.Optional });
我已经来到这里翻过一些解释:
- http://forums.asp.net/t/1792086.aspx/1
- http://www.hanselman.com/blog/TheWeeklySourceCode38ASPNETMVCBetaObscurityModelStateIsValidIsFalseBecauseModelBinderPullsValuesFromRouteData.aspx
- http://ayende.com/blog/3683/reproducing-a-bug
但他们都离开了我对我的胃口。我正在寻找一种巧妙的方法来解决这个问题,我不想更改模型的属性名称,也不想更改路由项目的名称。如果我这样做,这对我来说代表了很多工作,并不理想。
我确定我不是唯一有这个问题的人吗?
(这是MVC 4)
谢谢!