假设我有五种不同的独特形式(即Form1,Form2等),以及名为 ManyForms 的视图。五种形式中的每一种都有自己的PartialView(称为 _Form1 , _Form2 等)
我希望能够在 ManyForms 上呈现这些PartialViews,我知道我可以使用@Html.RenderPartial
来执行此操作。
但是,我希望能够在 ManyForms 视图中动态呈现多个表单(例如,三个 _Form3 s,两个 _Form4 s,一个 _Form5 )。
我的案例是否保证使用@foreach
?如果是这样,我将如何使用@foreach
来完成此任务,以及ViewModel应该是什么(粗略地说) - 假设我可能会遇到一些非常恼人的字典错误?
答案 0 :(得分:0)
我最终使用看起来像这样的ViewModel来完成这项工作:
public class MainViewModel
{
public List<Form1> Form1{ get; set; }
public List<Form2> Form2 { get; set; }
public List<Form3> Form3{ get; set; }
// etc.
public MainViewModel() {
Form1 = new List<Form1>();
Form2 = new List<Form2>();
Form3 = new List<Form3>();
// etc.
}
在 ManyForms 视图中:
@model Forms.Models.ViewModels.MainViewModel
<div class="container-fluid">
<div id="MainFormAccordion">
@foreach (var x in Model.Form1.ToList())
{
Html.RenderPartial("_Form1", x);
}
@foreach (var x in Model.Form2.ToList())
{
Html.RenderPartial("_Form2", x);
}
// etc.
_Form PartialViews均用作模型MainViewModel.FormX
。我不知道我是否遵循这里的良好做法,但我想这就是人们如何使用@foreach
。