0
如果我有一個由嵌套複雜類型組成的對象,例如具有List<Fu>
和List<Bar>
模型綁定複雜嵌套類型的HTML命名約定是什麼?
public class WarViewModel
{
List<Fu> Fu { get; set; }
List<Bar> Bar { get; set; }
}
public class Fu
{
public int Id {get;set;}
public Soldier Private { get; set; }
}
public class Bar
{
public int Id {get;set;}
public Soldier Private { get; set; }
}
public class Soldier
{
public int Id {get;set;}
public string Name { get; set; }
public int Age { get; set; }
}
一個視圖模型,如果我有一個form
包含2名select
名單,無論是與富或酒吧,其中每個option
代表列表中的每個士兵,並選擇了包含標識屬性,姓名和年齡,如
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<WarViewModel>" %>
<% using (Html.BeginForm("WarAction", "War")) { %>
<% foreach (var soldier in Fu) %>
<select class="fu">
<option id='<%= soldier.Id %>' age='<%= soldier.Age %>'><%= soldier.Name %></option>
</select>
<% } %>
<% foreach (var soldier in Bar) %>
<select class="bar">
<option id='<%= soldier.Id %>' age='<%= soldier.Age %>'><%= soldier.Name %></option>
</select>
<% } %>
<% } %>
什麼命名約定,我需要使用,這樣在提交表單的時候,下面的操作方法的WarViewModel將與在兩個列表中選擇的士兵填充?
public ActionResult WarAction(WarViewModel war)
{
return View();
}
我現在的理解是模型活頁夾不會知道士兵是哪個,所以它不知道哪個id與哪個士兵有關。有沒有辦法讓我解決這個問題?我知道上面的代碼不會驗證,但我試圖爲自己實現一個概念驗證。
此外,需要改變哪些方法使此方法成爲RESTful?