C# TwitterBootstrapMVC更改输入名称
我正在将我的应用程序从MVC3 aspx迁移到MVC5 razor。我正在尝试使用以下命令将输入名称从Client.FirstName更改为FirstName:C# TwitterBootstrapMVC更改输入名称,c#,asp.net-mvc,twitter-bootstrap,C#,Asp.net Mvc,Twitter Bootstrap,我正在将我的应用程序从MVC3 aspx迁移到MVC5 razor。我正在尝试使用以下命令将输入名称从Client.FirstName更改为FirstName: @(Html.Bootstrap().TextBoxFor(m => m.Client.FirstName).Data(new {@name = "FirstName"}) .Id("FirstName")) 我得到: <input name="Client.FirstName" class="form-cont
@(Html.Bootstrap().TextBoxFor(m => m.Client.FirstName).Data(new {@name = "FirstName"})
.Id("FirstName"))
我得到:
<input name="Client.FirstName" class="form-control" id="FirstName" type="text" value="" data-name="FirstName">
我得到了以下结果:
<input id="FirstName" name="FirstName" type="text" value="" /><span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="false">*</span>
因为我没有经验去弄清楚如何修理助手;我试着用twitterBootstrapMVC
非常感谢您的建议。.HtmlAttribute将指定的html属性应用于元素。可以选择接受IDictionary作为参数
.Data的工作方式与.HtmlAttributes类似,但在每个属性前添加数据。在这种情况下,将应用attribute data name=FirstName
因此,使用.HtmlAttributesnew{@name=FirstName}代替.Data
这是。使用
new { Name = "FirstName" }
而不是
new { @name = "FirstName" }
为什么要这样做?它将不再绑定到您的模型-这就是为什么您不能覆盖name属性。您是否为此使用了[DisplayNameFirstName]属性?@Ratatouille,这与设置输入的name属性无关。您实际要做的是什么。为什么要更改name属性并中断模型绑定?也许发布您想要的结果,如果您尝试设置itI样式,您可以始终使用`@Html.TextBox并添加类名和数据名属性。@Html.TextBox,得到:。我在控制器中使用formcollection。谢谢,我仍然得到name=Client.FirstName。谢谢,我使用的是版本3。
<input id="FirstName" name="FirstName" type="text" value="" /><span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="false">*</span>
new { Name = "FirstName" }
new { @name = "FirstName" }