ViewBag/ViewData을 사용하여 작업 방법에서보기로 데이터를 전달하지 않도록하십시오. 당신은 이것이 당신의 시선을 약간 더럽게 만들었다는 것을 깨달았어야합니다. 강력한 형식의 뷰 모델을 사용하십시오.
보기를 만드는 것으로 가정합니다. 그래서 그것을위한 뷰 모델을 만드십시오. 각 단계마다 여러 개의 액션이 있다고 가정합니다.
public class CreateSomeThingVM
{
public string Title { set;get;}
public List<Stage> Stages { set;get;}
public CreateSomeThingVM()
{
Stages=new List<Stage>();
}
}
public class Stage
{
public int ID { set;get;}
public string StageName { set;get;}
public List<Action> Actions { set;get;}
public Stage()
{
Actions =new List<Action>();
}
}
public class Action
{
public int ID { set;get;}
public string ActionName { set;get;}
}
작업 방법에서 데이터를 가져 와서 속성을 설정하십시오. GetListOfStagesFromSomeWhereWithItsActions
방법을 Assumuing
public ActionResult Create()
{
var vm=new CreateSomeThingVM();
vm.Stages=GetListOfStagesFromSomeWhereWithItsActions();
return View(vm);
}
는 적절한 Actions
와 Stage
개체의 목록을 반환합니다. (각 단계에 대한 관련 조치를받을 필요에 따라 여기에 필터링을 수행해야합니다).
강력하게 우리의 CreateSomeThingVM보기 모델에 입력 된보기에 지금
,
@model CreateSomeThingVM
@foreach(var stage in Model.Stages)
{
<h2>@stage.StageName</h2>
foreach(var action in Model.Actions)
{
<p>@action.ActionName</p>
}
}
ViewBag에서 전달하는 데이터는 무엇입니까? 이를 수행하는 더 좋은 방법이 있어야합니다. – Shyju