Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用@foreach在一个视图上呈现多个(PartialView)表单_Asp.net Mvc_Razor_Mvvm_Asp.net Mvc 5 - Fatal编程技术网

Asp.net mvc 使用@foreach在一个视图上呈现多个(PartialView)表单

Asp.net mvc 使用@foreach在一个视图上呈现多个(PartialView)表单,asp.net-mvc,razor,mvvm,asp.net-mvc-5,Asp.net Mvc,Razor,Mvvm,Asp.net Mvc 5,假设我有五种不同的独特形式(即Form1、Form2等),以及一个名为ManyForms的视图。五种形式中的每一种都有自己的局部视图(称它们为\u Form1,\u Form2,等等) 我希望能够在许多表单上呈现这些局部视图,我知道我可以使用@Html.RenderPartial 但是,我希望能够在ManyForms视图上动态呈现多个表单(例如,三个\u Form3视图、两个\u Form4视图和一个\u Form5视图) 我的案例是否保证使用@foreach?如果是这样,我将如何使用@fore

假设我有五种不同的独特形式(即Form1、Form2等),以及一个名为ManyForms的视图。五种形式中的每一种都有自己的局部视图(称它们为\u Form1\u Form2,等等)

我希望能够在许多表单上呈现这些局部视图,我知道我可以使用
@Html.RenderPartial

但是,我希望能够在ManyForms视图上动态呈现多个表单(例如,三个\u Form3视图、两个\u Form4视图和一个\u Form5视图)


我的案例是否保证使用
@foreach
?如果是这样,我将如何使用
@foreach
来实现这一点,以及ViewModel应该是什么样的(粗略地说)呢?假设我可能会遇到一些非常恼人的字典错误?

我最终使用的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.
}
public类主视图模型
{
公共列表Form1{get;set;}
公共列表Form2{get;set;}
公共列表Form3{get;set;}
//等等。
公共主视图模型(){
Form1=新列表();
Form2=新列表();
Form3=新列表();
//等等。
}
多个表单视图中:

@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. 
@model Forms.Models.ViewModels.MainViewModel
@foreach(Model.Form1.ToList()中的变量x)
{
Html.RenderPartial(“_Form1”,x);
}
@foreach(Model.Form2.ToList()中的变量x)
{
Html.RenderPartial(“_Form2”,x);
}
//等等。
\u表单部分视图将每个视图用作它们的模型
MainViewModel.FormX
。我不知道我在这里是否遵循了良好的实践,但我想这就是使用
@foreach
的方法