关于部分观点,我有两个问题......
何时使用部分视图vs @helper方法,我使用了两者 可以互换,并希望在他们的 用法。你们做什么的?
如何引用其他区域的部分视图。
我有一个名为admin的区域,我在常规Views目录中有一个局部视图。我如何使用它...我已经尝试了以下不能工作,因为它无法找到。
@Html.Partial(VirtualPathUtility.ToAbsolute("~/Views/ControllerName/_PartialView"),
Model)
其他我尝试过 -
@Html.Partial("~/Views/ControllerName/_PartialView", Model)
答案 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从区域页面注销。这是我做的:
在区域视图中,我通过
引用局部视图 <div class="float-right">
<section id="login">
**@Html.Partial("~/Views/Shared/_LoginPartial.cshtml")**
</section>
</div>
在 _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 :(得分:0)
另一种选择是在区域SHARED之间建立您想要共享的局部视图。
所以你把它放在主〜/ Views / Shared /文件夹中,例如
~/Views/Shared/_MyPartialView.cshtml.
然后您可以通过说
从任何区域引用它@Html.Partial("_MyPartialView")
答案 4 :(得分:0)
确保区域中的控制器具有[Area("MyArea")]
批注。截止本文,通过Tag Helpers和@ Html.ActionLink,可以通过ASP.NET Core中的Ajax div更新从区域边界中获取局部视图。