C# NETMVC。如何在没有模型的情况下渲染局部(如创建视图)
我想这样呈现局部:C# NETMVC。如何在没有模型的情况下渲染局部(如创建视图),c#,asp.net,asp.net-mvc,partial,C#,Asp.net,Asp.net Mvc,Partial,我想这样呈现局部: @Html.Partial("_MyPartial") 但是,my partial确实需要类型化对象,例如:MyPartial.cshtml: @model MyApplication.Models.MyClass (...) 但是我想在视图上渲染它,而不需要初始化模型,就像“创建”视图一样。 创建视图绑定到模型,但初始化为空 我已经尝试过的: @Html.Partial(“\u MyPartial”)主视图模型被传递给Partial,它抛出一个不兼容的类型错误 @Htm
@Html.Partial("_MyPartial")
但是,my partial确实需要类型化对象,例如:MyPartial.cshtml:
@model MyApplication.Models.MyClass
(...)
但是我想在视图上渲染它,而不需要初始化模型,就像“创建”视图一样。
创建视图绑定到模型,但初始化为空
我已经尝试过的:
@Html.Partial(“\u MyPartial”)
主视图模型被传递给Partial,它抛出一个不兼容的类型错误
@Html.Partial(“\u MyPartial”,null)
引发相同的错误
@Html.Partial(“\u MyPartial”,new MyClass())
使用默认值初始化视图。我不想要预初始化的视图
在“创建”视图中,没有模型传递给视图,但视图绑定到模型。我想在“创建”视图中渲染此部分。它不能绑定到初始化的模型实例。必须将其初始化为空。尝试使用html.renderaction,而不是执行部分操作,并且不要为视图声明任何模型,如果它一开始确实不使用模型的话
哦,是的,在操作返回中返回partialview,不要忘记@sign后面的大括号,这很重要您已经编写了代码来接受视图中的模型类型:
@model MyApplication.Models.MyClass
所以必须在视图中传递模型
如果您不想使用model,那么当您想返回没有模型的partialview时,请删除接受model的代码。用这个
@{ Html.RenderPartial("Your partial view") }
事实上,这是不可能的,因为partial从主视图获取模型,如果它本身没有人
在这种情况下,您必须初始化部分调用,并且不仅将模型传递为
null
,而且必须清除上下文中的所有数据。“我不想要预初始化视图”-这到底是什么意思?如果您想要的不是默认构造函数提供的内容,请使用对象初始值设定项。他不希望其模型的int
属性的输入框中出现默认值,例如0
,类似于return View()代码>vs返回视图(模型)代码>在创建控制器操作中。听起来您可能误用了mvc模式。你有用例吗?你可以有一个没有模型和子类的基本视图,但是,你不能有一个绑定到模型的视图,然后什么也不传递给该视图。我用它来补充“创建”视图。其中一些部分是由ajax动态添加的。这是一个相关的问题。我也想这样做。你明白了吗@Danielsanto请编辑更多信息。不鼓励只编写代码和“尝试此”回答,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试此”。您的评论不适用于“创建”视图,其中没有模型传递给视图,但视图绑定到模型。我想在“创建”视图中渲染此部分。它不能绑定到初始化的模型实例。它必须初始化为空。