ASP.NET MVC。如何使无模型部分(如创建视图)

ASP.NET MVC。如何使无模型部分(如创建视图)

问题描述:

我想渲染部分是这样的:ASP.NET MVC。如何使无模型部分(如创建视图)

@Html.Partial("_MyPartial") 

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

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

但我想在我的视图上呈现它,而没有初始化模型,如“创建”视图。

创建视图绑定到模型,但初始化为空。

我已经尝试过:

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

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

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

在“创建”视图中,没有模型传递给视图,但视图绑定到模型。我想在“创建”视图中呈现这部分内容。它不能绑定到已初始化的模型实例。它必须初始化为空。

+0

“我不想预先初始化视图” - 你究竟是什么意思?如果你想要的东西不是默认的构造函数提供的东西,请使用对象初始值设定项。 –

+1

他不想在输入框中输入默认值,例如在他的模型的int属性的输入中输入'0',类似于'return View();'vs'return View(model);'in a创建控制器操作。 – Jecoms

+1

听起来你可能会滥用mvc模式。你有用例吗?你可以有一个没有模型和子类的基本视图,但是,你不能有一个视图绑定到模型,然后不传递任何视图。 –

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

哦,是在行动回报返回partialview不要忘记@符号后面的花括号,它很重要

您已经编写代码来接受视图模型类型:

@model MyApplication.Models.MyClass 

所以是强制性的,你必须通过模型的视野。

如果你不希望使用的模型,然后删除您的代码接受模型

+0

您的评论不适用于“创建”视图,其中没有模型传递给视图,但视图绑定到模型。我想在“创建”视图中呈现这部分内容。它不能绑定到已初始化的模型实例。它必须初始化为空。 –

当您希望与没有模型返回partialview。用这个。

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

请编辑更多信息。仅限代码和“尝试这个”的答案是不鼓励的,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试这个”。 – abarisone

+0

它不起作用 –

+0

任何错误或只是没有工作兄弟? – Kramer