27

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

  1. 何时使用 Partial 视图与 @helper 方法,我可以互换使用这两种方法,并希望在它们的使用上更加一致。你们是做什么的?

  2. 您如何引用另一个区域的局部视图。

我有一个名为 admin 的区域,并且在常规 Views 目录中有一个部分视图。我如何使用它.. 我尝试了以下无法找到的方法。

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

其他我试过 -

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

5 回答 5

40

我不确定你是指 Html 助手,还是说“助手”时的剃须刀助手。无论如何,我只在它是一个小的、单独的项目(如控件)时创建 Html 助手。

如果您指的是 Razor 助手,那么它们与 Partials 的不同之处在于您可以像调用函数一样调用它们,传递您想要的任何参数。部分主要被“模型”系统(当然还有 Temp/ViewData/Bag.

这完全取决于您希望如何使用代码。

至于你的部分。您必须包含后缀。

@Html.Partial("~/Views/ControllerName/_PartialView.cshtml", Model)
于 2011-09-10T02:22:57.770 回答
37

既然提问者问的是区域,这里是如何在一个区域中进行的

 @Html.Partial("~/Areas/Store/Views/Pages/Checkout.cshtml")
于 2013-05-13T22:40:16.867 回答
3

我只是给出我正在尝试做的具体而简单的例子。我需要能够使用位于主共享文件夹中的部分视图从区域页面注销。这是我所做的:

  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" }))
    

希望在某种程度上有所帮助!

于 2014-03-19T07:34:35.350 回答
2

另一种选择是使要在区域之间共享的局部视图共享。

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

~/Views/Shared/_MyPartialView.cshtml.

然后,您可以通过说从任何区域引用它

@Html.Partial("_MyPartialView")
于 2018-02-27T11:44:05.130 回答
0

确保区域中的控制器具有[Area("MyArea")]注释。在这篇文章中,通过 ASP.NET Core 中的 Ajax div 更新从区域边界中提取部分视图对我来说适用于 Tag Helpers 和 @Html.ActionLink。

于 2019-07-20T02:58:16.030 回答