ASP.NETMVC。如何渲染没有模型的部分(如创建视图)

ASP.NET MVC. How render a Partial with no model (like create view)

我想像这样渲染局部:

@Html.Partial("_MyPartial")

但是我的部分确实需要一个类型化的对象,例如:MyPartial.cshtml :

@model MyApplication.Models.MyClass
(...)

但我想在我的视图 没有初始化模型的情况下呈现它,例如 "Create" 视图。

Create views is bound to a model, but is initialized empty.

我已经尝试过的:

@Html.Partial("_MyPartial") 主视图模型被传递给部分,它抛出一个不兼容的类型错误。

@Html.Partial("_MyPartial", null) 抛出同样的错误。

@Html.Partial("_MyPartial", new MyClass()) 使用默认值初始化视图。我不想要预初始化视图。

在 "Create" 视图中,没有模型传递给视图,但视图绑定到模型。我想在 "create" 视图中呈现这个部分。它不得绑定到已初始化的模型实例。必须初始化为空。

尝试使用 html.renderaction 而不是部分 like this 并且不要为视图声明任何模型,如果它一开始真的不使用模型?

哦是的 return 动作中的局部视图 return 不要忘记 @ 符号后的大括号,这很重要

您已经编写代码以在视图中接受模型类型:

@model MyApplication.Models.MyClass

因此必须在视图中传递模型。

如果您不想使用模型,请删除接受模型的代码

当您想要 return 没有模型的局部视图时。使用这个。

@{ Html.RenderPartial("Your partial view") }

事实上,这是不可能的,因为partial从主视图中获取模型,如果没有它自己。

在这种情况下,您必须初始化部分调用并不仅将模型作为 null 传递,而且必须清理上下文中的整个数据。