如何在ASP.NET MVC 3中呈现部分视图?

44
我在ViewData.Model中有一些数据,我想编写一个局部视图,并传递当前页面上的模型。
我该如何传递当前的ViewData.Model并通过局部视图的位置渲染它们?
2个回答

104

创建你的局部视图,例如:

@model YourModelType
<div>
  <!-- HTML to render your object -->
</div>

然后在你的视图中使用:

@Html.Partial("YourPartialViewName", Model)
如果您不想要强类型的局部视图,请从局部视图顶部移除@model YourModelType,它将默认为dynamic类型。 更新: 默认视图引擎将在调用局部视图的视图所在文件夹和~/Views/Shared文件夹中搜索局部视图。如果您的局部视图位于不同的文件夹中,则需要使用完整路径。请注意以下路径中使用了~/
@Html.Partial("~/Views/Partials/SeachResult.cshtml", Model)

你好,我的情况是容器视图与“ContainerModel”绑定,而部分视图位于共享文件夹中,并与“ChildrenModel”绑定在@Html.Partial(“〜/ Views / Partials / SeachResult.cshtml”,Model)中,它会引发异常,“ChildrenModel未声明。由于其保护级别而无法访问”你能建议该怎么做吗? - Ishaan Puniani
1
@Html.RenderPartial(string viewName) 是用来做什么的?它总是会报错,提示 Cannot implicitly convert type 'void' to 'object' - shashwat
3
请在括号内使用RenderPartial以避免该错误。 - Pradeep
3
例如:@{ Html.RenderPartial("_ContactForm", Model); } - Pradeep

3
<%= Html.Partial("PartialName", Model) %>

它在MVC 3中没有工作。如果我将局部视图的位置作为partialname参数传递,它们将无法工作,并给出错误信息:@Html.RenderPartial(Globals.Theme_Path +“views / partials / seachresult.cshtml”,ViewData.Model) - delete my account
@Moby 看起来无法找到部分视图,请查看我的答案,但您能否发布错误消息,然后我们或许可以提供进一步的帮助。 - David Glenn
你不应该使用不同的视图来应用主题。应该使用不同的图片/CSS文件来应用主题。此外,你应该使用Partial而不是RenderPartial。 - Kasper Holdum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接