У меня есть модель M, которая содержит список объектов A. В AI есть список объектов B, и я хочу связать весь объект M с моим видом, который также содержит частичное представление для каждого объекта B.
Я уже пытался вручную связать свое поле внутри цикла for, но, похоже, оно не работает.
контроллер
public ActionResult Index()
{
//My Helper fill my model with some categories and some data in it
CategoriesViewModel Categories = new CategoriesViewModel {
Categories = TableEditionHelper.GetAllCategories()
};
return View(Categories);
}
[HttpPost]
public ActionResult ExportCSV(CategoriesViewModel Model)
{
var model = Model;
return View();
}
модель
public class CategoriesViewModel
{
public List<CategoryModel> Categories {get; set;}
}
public class CategoryModel
{
public string CategoryName {get; set;}
public List<CategoryData> Datas{get; set;}
}
public class CategoryData {
public bool IsSelected {get;set;}
public string DataName {get; set;}
public int OrderNumber {get;set;}
}
index.cshtml
@model CategoriesViewModel
@using (Ajax.BeginForm(
"ExportCSV",
"TableEdition",
new AjaxOptions
{
HttpMethod = "POST"
}))
{
for (int i = 0; i < Model.Categories.Count; i++)
{
<fieldset class="fieldsetCard" style="margin-top: 25px;">
<legend class="LegendEdit">@Model.Categories[i].CategoryName</legend>
@Html.HiddenFor(x => x.Categories[i].CategoryName)
@Html.Partial("~/Views/TableEdition/_SelectData.cshtml", Model.Categories[i])
</fieldset>
}
<input type="submit" data-id="search-run" value="@Resource.Search" title="@Resource.SearchTooltip" />
}
selectData.cshtml
@model CategoryModel
<ul id="@Model.CategoryName ColumnList">
@for (int i = 0; i < Model.Datas.Count(); i++)
{
<li>
@Html.CheckBoxFor(x => x.Datas[i].IsSelected)
@Html.HiddenFor(x => x.Datas[i].OrderNumber)
@Html.DisplayFor(x => x.Datas[i].DataName)
</li>
}
</ul>
Реальное поведение состоит в том, что список категорий заполнен именем, но все данные списка являются нулевыми. Я хотел бы иметь мою модель со всеми моими данными, когда я публикую в действии ExportCSV.
Заранее спасибо!