将模型传递给局部视图

Passing model to partial View

我是 ASP.NET MVC 的新手,到目前为止,我已经读到如果我在一个视图中说两种形式,建议的做法是拥有一个 View 模型,它将每个表格都有模型关联,这个表格没有任何关系,只是在主页上,一个表格用于搜索苍蝇,另一个表格是联系表格,所以你可以看到没有任何关系。

这是我的"HomePageViewModel"

public class HomePageViewModel
    {
        public SearchFlyViewModel SearchFly;
        public ContactFormViewModel Contact;        
    }

,在我的主页索引文件中,我将其放在顶部

@model Project.WebSite.Models.HomePageViewModel

现在,我的主页里面有一个局部视图,这个局部视图有搜索飞行表单,我这样做是因为我在很多地方使用相同的表单。

我的局部视图是 _QuoteForm,我在其中将其置于顶部

@model Project.WebSite.Models.SearchFlyViewModel

当我试图在主页上这样做时

@Html.Partial("_QuoteForm", Model.SearchFly)

运行时出现错误告诉我这个

The model item passed into the dictionary is of type 'Project.WebSite.Models.HomePageViewModel', but this dictionary requires a model item of type 'Project.WebSite.Models.SearchFlyViewModel'.

我不明白为什么因为我没有将 HomePageViewModel 传递给我的部分视图,所以我传递了 Model.SearchFly 类型的 SearchFlyViewModel

如果有人能帮我弄清楚我遗漏了什么。

谢谢

Html.Partial的第二个参数(“模型”)不应该为空。

@Html.Partial("_QuoteForm", Model.SearchFly)

验证

Model.SearchFly != null