我如何能有一个视图呈现部分(用户控件)从不同的文件夹? 有了预览3,我习惯用完整的路径调用RenderUserControl,但升级到预览5,这是不可能的了。 相反,我们得到了RenderPartial方法,但它没有提供我所寻找的功能。
当前回答
对于使用ASP的读者。NET Core 2.1或更高版本,想要使用Partial Tag Helper语法,试试这个:
<partial name="~/Views/Folder/_PartialName.cshtml" />
波浪号(~)是可选的。
https://learn.microsoft.com/en-us/aspnet/core/mvc/views/partial?view=aspnetcore-3.1#partial-tag-helper上的信息也很有用。
其他回答
你应该试试这个
~/Views/Shared/parts/UMFview.ascx
将~/Views/放在代码之前
尝试使用RenderAction("myPartial","Account");
在我的情况下,我正在使用MvcMailer (https://github.com/smsohan/MvcMailer),并想从另一个文件夹访问部分视图,这不在“共享”中。上面的解决方案不起作用,但是使用相对路径可以。
@Html.Partial("../MyViewFolder/Partials/_PartialView", Model.MyObject)
VirtualPathProviderViewEngine是WebFormsViewEngine的基础,它应该支持路径前面的“~”和“/”字符,所以上面的例子应该可以工作。
我注意到你的例子使用了路径“~/Account/myPartial”。ascx”,但是您提到您的用户控件在Views/Account文件夹中。你试过了吗
< %。RenderPartial(“~点击量/ Html / myPartial . ascx”);% >账户
还是你的问题打错了?
对于名为myPartial的用户控件。ascx位于Views/Account文件夹,如下所示:
<%Html.RenderPartial("~/Views/Account/myPartial.ascx");%>
推荐文章
- asp.net MVC中的@RenderSection是什么
- 如何在c#中获得正确的时间戳
- Linq选择列表中存在的对象(A,B,C)
- c# .NET中的App.config是什么?如何使用它?
- 在哪里放置AutoMapper.CreateMaps?
- c#:如何获得一个字符串的第一个字符?
- String类中的什么方法只返回前N个字符?
- 我如何提高ASP。NET MVC应用程序性能?
- 更好的方法将对象转换为int类型
- 我可以将c#字符串值转换为转义字符串文字吗?
- 在c#中转换char到int
- c#中朋友的对等物是什么?
- 关键字使用virtual+override vs. new
- 在ASP中选择Tag Helper。NET Core MVC
- 如何在没有任何错误或警告的情况下找到构建失败的原因