2014-10-29 88 views
0

我正在将我的应用程序从MVC3(aspx)迁移到MVC5(剃须刀)。我想输入的名字从Client.FirstName更改为姓,使用:TwitterBootstrapMVC更改输入名称

@(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)%> 

I试图Razor视图如下:

@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。

我希望你的建议。

+0

你为什么要做到这一点 - 它不再绑定到你的模型 - 这就是为什么你不能覆盖的name属性。 – 2014-10-29 05:13:09

+0

Hav eyou为此使用了[DisplayName(“FirstName”)]属性? – Rahul 2014-10-29 05:15:20

+0

@Ratatouille,这与设置输入的名称属性无关。 – 2014-10-29 05:16:55

回答

0

使用,而不是

new { Name = "FirstName" } 

new { @name = "FirstName" } 
+0

非常感谢你阿兹姆;效果很好。 – hncl 2014-10-29 06:02:28

0

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

.Data().HtmlAttributes()的工程类似,但是对每个属性预先设置data-。在这种情况下,将应用属性data-name="FirstName"

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

这里是TwitterBootstrapMVC Documentation

+0

谢谢,我仍然得到name = Client.FirstName。 – hncl 2014-10-29 05:47:18

+0

谢谢,我正在使用版本3. – hncl 2014-10-29 05:55:21