如何在循环中将模型传递给部分

本文关键字:模型 循环 | 更新日期: 2023-09-27 18:31:36

我的页面模型如下所示:

public class SomeViewModel()
{
    public List<Some> Something1 {get;set;}
    public MySettings Settings {get;set;}
}

现在在我看来:

@foreach(var some in Something1)
{
  @Html.Partial("_Some", some);
}

如果我想传入Settings也进入部分,我该怎么做?

如何在循环中将模型传递给部分

您可以创建另一种视图模型类型:

public class OtherViewModel()
{
    public OtherViewModel(Some some, MySettings mySettings)
    {
        Some = some;
        MySettings = mySettings;
    }
    public Some Some { get; set; }
    public MySettings Settings { get; set; }
}

然后,您可以使用它来查看:

@foreach(var some in Something1)
{
  @Html.Partial("_Some", new OtherViewModel(some, Model.MySettings));
}

您也可以在不创建类型的情况下使用 Tuple 类,但我认为第一个是更好的方法。无论如何,您都可以通过以下方式执行此操作:

@foreach(var some in Something1)
{
  @Html.Partial("_Some", new Tuple<Some,MySettings>(some, Model.MySettings));
}