2014-10-29 89 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