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)
謝謝!