2016-05-08 20 views
-1

當前我在asp.net mvc視圖中工作對象名稱綁定爲輸入控件中的前綴

我使用下面的代碼創建表單。

@{ 
    T4.Models.Order o = new T4.Models.Order(); 
} 

@using (Html.BeginForm("Create", "Default5", FormMethod.Post)) 
{ 
    @Html.AntiForgeryToken() 

    <div class="form-horizontal"> 
     <h4>Order</h4> 
     <hr /> 
     @Html.ValidationSummary(true) 

     <div class="form-group"> 
      @Html.LabelFor(model => o.CustomerID, new {@class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model=>o.CustomerID) 
       @Html.ValidationMessageFor(model => o.CustomerID) 
      </div> 
     </div> 
    </div> 
} 

這段代碼的渲染效果很好,但問題在於它以對象名稱的前綴呈現。

顯示HTML代碼如下

<input class="text-box single-line" data-val="true" data-val-required="The CustomerID field is required." id="o_CustomerID" name="o.CustomerID" type="text" value=""> 

你可以看到這個網站輸入控制已經ID = 「o_CustomerID」。我想,它只能與ID = 「客戶ID」渲染。

我不知道爲什麼它將對象名稱作爲前綴。

請幫幫我。

謝謝。

+0

什麼是你視圖的模型?不清楚你想在這裏做什麼。如果你想要一個表單來編輯'Order',那麼你的視圖必須是'@model Order' –

回答

0

無需初始化T4.Models.Order類的對象。

@{ 
    T4.Models.Order o = new T4.Models.Order(); 
} 

替換上面的代碼: @model T4.Models.Order

那麼簡單的使用:

<div class="form-group"> 
      @Html.LabelFor(model => model.CustomerID, new {@class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model=> model.CustomerID) 
       @Html.ValidationMessageFor(model => model.CustomerID) 
      </div> 
     </div> 
+0

我必須做的事情是創建對象,因爲我的模型類已經用@@ model裝飾IEnumerable

+0

如果你的模型已經用你的IEnumerator類裝飾過,那麼直接使用它。 – Ronak

+0

請告訴我如何使用IEnumerator –