MVC加载值作为get提交

时间:2014-12-26 20:06:55

标签: c# asp.net-mvc-4 get submit html-helper

我实现了一个页面列表,其中包含一个提交一个GET表单的搜索面板。

我有三个字段,一个用于搜索字段名称,用@Html.TextBox创建,另外两个用于为我创建扩展名。

问题在于,当我提交表单并重新加载页面以显示结果时,即使我没有在@Html.TextBox上设置任何值,唯一加载该值的字段是value。 {1}}参数。

以下是实施这些搜索字段的代码,您知道TextBox扩展如何解决此问题吗?

@Html.TextBox("s.Name", null, new { @class = "text", @maxlength = "100" })
@Html.Date("s.Birthdate", null, new { @class = "datetime" })
@Html.SearchBoolean("s.IsPlayer")

1 个答案:

答案 0 :(得分:0)

HtmlHelpers的源代码是here

如果您查看用于生成input元素的代码,Html.TextBox扩展程序使用该元素,您将会看到以下代码:

string attemptedValue = (string)htmlHelper.GetModelStateValue(fullName, typeof(string));
tagBuilder.MergeAttribute("value", attemptedValue ?? ((useViewData) ? htmlHelper.EvalString(fullName, format) : valueParameter), isExplicitValue);

GetModelStateValue将搜索传递到视图中的模型中字段的值。因此,如果您不想显示任何值,则只需在模型中为此字段指定null值。