【问题标题】:How can I render Partial views in asp.net mvc 3?如何在 asp.net mvc 3 中呈现部分视图?
【发布时间】:2011-07-23 10:24:04
【问题描述】:

我在ViewData.Model 中有一些数据,在我的视图中,我想编写一个局部视图并传递我在页面中拥有的当前模型。

我如何传递他们当前的ViewData.Model 并通过部分位置渲染它们?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 partial-views partial


    【解决方案1】:

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

    @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”绑定,部分视图位于共享文件夹中,并与 @Html.Partial("~/Views/Partials/SeachResult. cshtml", Model) 它给出的异常是“ChildrenModel 未声明。由于其保护级别,它可能无法访问”你能建议做什么吗??
    • 为什么@Html.RenderPartial(string viewName) 是为了..?它总是给出一个错误说Cannot implicitly convert type 'void' to 'object'
    • @shashwat - 在括号内使用 RenderPartial 来避免该错误。
    • 例如@{ Html.RenderPartial("_ContactForm", 模型); }
    【解决方案2】:
    <%= Html.Partial("PartialName", Model) %>
    

    【讨论】:

    • 它在 MVC 3 中不起作用。如果我在部分名称中传递部分的位置,它们不起作用并给我错误 @Html.RenderPartial(Globals.Theme_Path+"views/partials/seachresult.cshtml" ,ViewData.Model)
    • @Moby 似乎找不到部分视图,请参阅我的回答,但您能否发布错误消息,然后我们也许可以提供进一步的帮助。
    • 您不应该通过使用不同的视图来应用主题。应使用不同的图像/css 文件应用主题。此外,您应该使用 Partial 而不是 RenderPartial。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2013-06-17
    相关资源
    最近更新 更多