我完全难住了。
我在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