2015-10-12 57 views
0

我有一個類MVC5 Asp.net有沒有辦法擺脫EditorFor正確的值的子類

public class Citizen 
{ 
    public long ID { get; set; } 
    public string Name { get; set; } 
    public long CityID { get; set; } 
    public string City { get; set; } 
    public List<CitizenResource> Resources { get; set; } 
} 

我想編輯的資源不同的物品,但EditorFor不成立正確輸入。

@for (int i = 0; i < Model.Resources.Count; i++) 
{ 
    @Html.BeginForm("EditResource", "Citizen") 
    { 
     @Html.AntiForgeryToken() 
     <div class="form-horizontal"> 
      <div class="form-group"> 
       <p class="form-control-static"> 
        @Html.DisplayFor(model => model.Resources[i].Name) 
       </p> 
       <div class="col-md-10"> 
        @Html.EditorFor(model => model.Resources[i].CurrentAmount, new { htmlAttributes = new { @class = "form-control" } }) 
        @Html.ValidationMessageFor(model => model.Resources[i].CurrentAmount, "", new { @class = "text-danger" }) 
        <input type="hidden" name="ResourceID" value="@Model.Resources[i].ResourceID"/> 
        <input type="submit" value="Update" class="btn btn-default" /> 
       </div> 
      </div> 
     </div> 
    } 
} 

我得到的是NAME = 「資源[0] .CurrentAmount」 然後沒有正確映射到CitizenResource類。

任何人都可以幫助指向正確的方向嗎?

+0

你爲什麼集合中創建的每個'CitizenResource'多種形式的CitizenResource - 它是沒有意義的,因爲你只能回發一個一次。或者有一種形式可以一次性編輯「Citizen」和所有的「CitizenResource」(並回傳「Citizen」),或者有一個單獨的編輯「CitizenResource」的視圖並回傳「CitizenResource」 –

回答

0

您發送的名稱將導致表達:

我得到的是NAME = 「資源[0] .CurrentAmount」 然後沒有正確映射 到CitizenResource類。

@Html.EditorFor(model => model.Resources[i].CurrentAmount, new { htmlAttributes = new { @class = "form-control" } }) 

反而有局部視圖編輯

@model CitizenResource 

@using(Html.BeginForm("EditResource", "Citizen")){ 
      { 
//The complete elements 
@Html.EditorFor(model => model.CurrentAmount, new { htmlAttributes = new { @class = "form-control" } }) 
//The rest of the elements 
}} 
相關問題