我实现了一个页面列表,其中包含一个提交一个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")
答案 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
值。