TwitterBootstrapMVC更改输入名称

时间:2014-10-29 05:10:47

标签: 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-control" id="FirstName" type="text" value="" data-name="FirstName">

我在MVC3中使用了以下助手:

 public static string ExTextBox (this HtmlHelper helper, string name, object value, bool readOnly, string Label)
            {
            string HTML = "";
            //if (readOnly) HTML = String.Format("<label for='{0}'>{1}</label>", name, value);
            if (readOnly)
                HTML = value != null ? value.ToString() : "";
            else
                HTML = System.Web.Mvc.Html.InputExtensions.TextBox(helper, name, value).ToString() + System.Web.Mvc.Html.ValidationExtensions.ValidationMessage(helper, name, "*");
            HTML = AddCellsAndLabel(HTML, name, Label);
            return HTML;
            }

在视图中:

<%= Html.ExTextBox("FirstName", Html.Encode(Model.Client.FirstName), Model.IsReadOnly, null)%>

我在Razor View中尝试了以下内容:

  @Html.ExTextBox("FirstName", Html.Encode(Model.Client.FirstName), Model.IsReadOnly, null)

我得到以下(显示):

<input id="FirstName" name="FirstName" type="text" value="" /><span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="false">*</span>

因为我没有经验弄清楚如何修复助手;我试着使用twitterBootstrapMVC。

感谢您的建议。

2 个答案:

答案 0 :(得分:0)

.HtmlAttribute()将指定的html属性应用于元素。可选择接受IDictionary作为参数。

.Data().HtmlAttributes()的工作方式类似,但在每个属性前加data-。在这种情况下,将应用属性data-name="FirstName"

而不是.Data()使用.HtmlAttributes(new { @name= "FirstName" })

这是TwitterBootstrapMVC Documentation

答案 1 :(得分:0)

使用

new { Name = "FirstName" }

而不是

new { @name = "FirstName" }