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 如何在同一视图中使用2个模型_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何在同一视图中使用2个模型

Asp.net mvc 如何在同一视图中使用2个模型,asp.net-mvc,Asp.net Mvc,我想使用两个模型,model_1和model_2(一个model_1,多个model_2),但在一个视图中,我只能使用一个 我的看法是: @model IEnumerable<ProjectFashion.Models.model_1> @model IEnumerable<ProjectFashion.Models.model_2> @{ ViewBag.Title = "VMenu"; } <ul> @foreach(var n in Mo

我想使用两个模型,
model_1
model_2
(一个
model_1
,多个
model_2
),但在一个视图中,我只能使用一个

我的看法是:

@model IEnumerable<ProjectFashion.Models.model_1>
@model IEnumerable<ProjectFashion.Models.model_2>
@{
    ViewBag.Title = "VMenu";
}
<ul>
    @foreach(var n in Model) {
        <li class="dir">
            <h6>@n.name</h6>
                <ul>
                      @*I WANT TO GET model_2 which belongs to model_1*@
                </ul>
        </li>        
    }
</ul>
我还使用
model_3
来包括
model_1
model_2
,但是
@Html.Action(“VMenu”,“Layout”)中出现了一些问题。

(很抱歉我的英语不太好…

model_1上是否有导航属性,可以为您提供相关的model_2?如果是这样,那么您只需要通过模型_1并填写导航模型_2。您可以在示例行中将其引用为类似于
@n.model_2s.property

的内容。您不希望这样:

@model IEnumerable<ProjectFashion.Models.model_1>
@model IEnumerable<ProjectFashion.Models.model_2>
@model ProjectFashion.Models.SomeCustomModel
您的自定义模型可以如此简单:

public class SomeCustomModel
{
    public IEnumerable<model_1> FirstModel { get; set; }
    public IEnumerable<model_2> SecondModel { get; set; }
}
公共类模型
{
公共IEnumerable FirstModel{get;set;}
公共IEnumerable SecondModel{get;set;}
}
(我想不出更好的名字了,你的模型名字并没有留下任何关于它们是什么的线索。)

然后在控制器操作中创建
SomeCustomModel
的实例,填充其字段,并将其返回到视图。一般来说,您正在创建的是一个“复合对象”,它只是由其他对象组成


当然,这是假设您的模型彼此之间没有任何其他现有关系。(同样,这些名称没有提供任何线索。)如果它们提供了线索,也许有一个“父”对象已经有了“子”对象?可能
model_1
包含类型为
model_2
的属性,或者已经包含了
model_2
实例的集合?

这看起来很像ASP.NET MVC代码,但标签的随机分类说明了另一种情况。你能澄清一下吗?这与Python或多个移动平台到底有什么关系?-1对于很多标记,但它们都不相关(这看起来像ASP.NET MVC/Razor?),对于初学者来说,这是一个非常不清楚的问题。ignoredi尝试了它,但另一个问题是@foreach(Model.FirstModel中的var项)错误在于对象引用未设置为object@user2494355:什么没有实例化?在将模型传递到视图之前,如何构建模型?很可能您正试图在空列表中枚举。如果可能从未设置对象列表,那么默认情况下您希望将其实例化为空列表。在视图模型的构造函数中,只需将属性设置为空列表。。。。。。。。我的英语仍然有限,所以我不能很好地理解,但最后我做到了,非常感谢:)
@model ProjectFashion.Models.SomeCustomModel
public class SomeCustomModel
{
    public IEnumerable<model_1> FirstModel { get; set; }
    public IEnumerable<model_2> SecondModel { get; set; }
}