mvc3 - 在不同区域使用部分视图

时间:2011-09-09 22:17:24

标签: asp.net-mvc-3 razor asp.net-mvc-3-areas

关于部分观点,我有两个问题......

  1. 何时使用部分视图vs @helper方法,我使用了两者 可以互换,并希望在他们的 用法。你们做什么的?

  2. 如何引用其他区域的部分视图。

  3. 我有一个名为admin的区域,我在常规Views目录中有一个局部视图。我如何使用它...我已经尝试了以下不能工作,因为它无法找到。

    @Html.Partial(VirtualPathUtility.ToAbsolute("~/Views/ControllerName/_PartialView"),
     Model)
    

    其他我尝试过 -

    @Html.Partial("~/Views/ControllerName/_PartialView", Model)
    

5 个答案:

答案 0 :(得分:36)

当你说“帮助者”时,我不确定你是指Html帮助者还是剃须助手。无论如何,我只创建一个Html助手,当它是一个像控件这样的小型个人项目时。

如果您的意思是Razor助手,那么它们与Partials的不同之处在于您可以将它们称为函数,传递您想要的任何参数。部分内容主要是“模型”系统(当然还有Temp / ViewData / Bag。

这就是你想如何使用代码。

至于你的偏见。您必须包含后缀。

@Html.Partial("~/Views/ControllerName/_PartialView.cshtml", Model)

答案 1 :(得分:29)

由于提问者询问这里的区域是如何在一个区域内进行的

 @Html.Partial("~/Areas/Store/Views/Pages/Checkout.cshtml")

答案 2 :(得分:1)

我只是给出了我想要做的具体而简单的例子。 我需要能够使用位于主共享文件夹中的partialview从区域页面注销。这是我做的:

  1. 在区域视图中,我通过

    引用局部视图
       <div class="float-right">
            <section id="login">            
              **@Html.Partial("~/Views/Shared/_LoginPartial.cshtml")**
            </section>
       </div>
    
  2. _LoginPartial 代码所在的主要共享文件夹中,我添加了{new = area ("")},来自:

    using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
    

    到:

    using (Html.BeginForm("LogOff", "Account", **new { area = "" },** FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
    
  3. 希望以某种方式有所帮助!

答案 3 :(得分:0)

另一种选择是在区域SHARED之间建立您想要共享的局部视图。

所以你把它放在主〜/ Views / Shared /文件夹中,例如

~/Views/Shared/_MyPartialView.cshtml.

然后您可以通过说

从任何区域引用它
@Html.Partial("_MyPartialView")

答案 4 :(得分:0)

确保区域中的控制器具有[Area("MyArea")]批注。截止本文,通过Tag Helpers和@ Html.ActionLink,可以通过ASP.NET Core中的Ajax div更新从区域边界中获取局部视图。