Привязать объект, содержащий список объектов, содержащий список, к частичному представлению - PullRequest
0 голосов
/ 07 октября 2019

У меня есть модель 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.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...