這post問這個問題,但並沒有真正給出答案,所以我想我會以不同的方式提出問題。爲什麼輸入元素不會呈現在ASP.Net MVC中傳遞的值?
我有一個頁面,呈現從模型中的隱藏的價值:
<%=Html.Hidden("myName", model.myValue) %>
因爲我在值參數傳遞的值,你會覺得它會輸出值,但事實並非如此。
渲染輸入域代碼有以下幾點:
string attemptedValue = (string)htmlHelper.GetModelStateValue(name, typeof(string));
tagBuilder.MergeAttribute("value", attemptedValue ?? ((useViewData) ? htmlHelper.EvalString(name) : valueParameter), isExplicitValue);
基本上,如果ModelState中(其中包含公佈值)包含通過了「名」的值,它會使用該值,而不是你的將值傳遞給輔助方法。在我的情況下,我更新了模型,我的更新值沒有輸出。
如果我傳遞一個值給一個方法,我期望這個值被渲染。
我錯過了這個設計中的東西還是它錯了?
我同意所有輸入控件,但隱藏不是可見的輸入控件。所以不應該隱藏行爲不同? – 2010-03-19 15:05:30
MVC無法知道您的隱藏輸入是如何使用和設置的。也許你在頁面上有一個JavaScript GUI控件,它讀/設置一個隱藏的輸入來與服務器通信? MVC一致對待所有表單元素。 – 2010-03-19 15:22:10