PlaceHolder + @ Html.TextBox问题

时间:2013-08-14 13:20:53

标签: c# asp.net-mvc-4 razor

目标

成功应用placeholder方法的@Html.Textbox属性。

问题

我的应用程序有以下语法;

@Html.TextBox("term", new { placeholder = "What are you searching for?" })

但是,当呈现TextBox时,value的{​​{1}}属性为input。换句话说,placeholder = "What are you searching for?"属性不是作为属性应用,而是作为placeholder的{​​{1}}应用。

知识

我已经在Google和Stack Overflow上搜索了这个问题,但直到现在,还没有成功。

This link有一个与我正在使用的语法相同的解决方案,但当我将第二个参数传递给input时,它会呈现为一个值,第三个参数没有任何反应(在我们的情况,value)。

3 个答案:

答案 0 :(得分:22)

您正在调用string name, object value overloadthat method,因此第二个参数将被视为value,而不是htmlAttributes。您应该使用方法的不同重载,可能是string name, object value, object htmlAttributes指定空value

@Html.TextBox("term", "", new { placeholder = "What are you searching for?" })

答案 1 :(得分:2)

尝试使用空的@ Html.TextBox

@Html.TextBox("CustomarName" ,null, new { @class = "form-control" , @placeholder = "Search With Customar Name" })

答案 2 :(得分:1)

你需要第三个参数:

@Html.TextBox("term", Model.SomeProperty, new { placeholder = "What are you searching for?" })

第三个参数是您希望包含在输入字段的HTML输出中的任何属性。