我完全難住了。
我在MVC2做searchform(我已經在這個項目上,一切工作正常進行十餘人。)
Global.asax中有這條路線:Html.DisplayFor和Html.EditorFor顯示不同的值
routes.MapRoute("OnlineHelpSearchIndex",
"Help/Search/{expression}/{page}",
new { controller = "OnlineHelp", action = "Search", expression = UrlParameter.Optional, page=1 });
的表達是一個base64編碼字符串。我在控制器中解碼它,將它傳遞給一個名爲Expression
的屬性的模型,並將其顯示在TextBox中的PartialView中。 (然後,當用戶點擊一個鏈接或按下回車,我編碼字符串中的javascript並將其發送到"/Help/Search/"+value
)
我已經建立了這種方式(每一個路線SomeModule/Search/{expression}
),其中一個幾個searchboxes不工作。
<%:Html.DisplayFor(m => m.Expression)%>
<%: Model.Expression %>
<%:Html.TextAreaFor(m => m.Expression)%>
<%:Html.TextBoxFor(m => m.Expression)%>
<%:Html.EditorFor(m => m.Expression)%>
前兩個顯示正確的表達式,另外三個顯示url中的表達式。
我試圖硬編碼一個字符串到模型中,前兩個顯示硬編碼的字符串,其他三個顯示在URL中的任何內容。 這怎麼可能?
(我甚至試圖與JS禁用,所以它是一個服務器端的問題)
但是,爲什麼它適用於除我的兩個案件之外的所有案件? – TDaver 2012-02-26 09:05:25
你說*他們中的一個*不工作,對吧?你提到的情況正如預期的那樣工作:'Html.DisplayFor'和'Model.Expression'不會產生一個輸入類型的字段,所以它們不會被影響/覆蓋,其他三種情況。 – Darkseal 2012-02-26 11:24:44
不,我的意思是'<%:Html.TextBoxFor(m => m。表達式)%>'在兩個地方都可以工作。 – TDaver 2012-02-26 13:29:50