asp.net-mvc – ASP.NET核心Razor SDK类库 – 不在区域目录中的
我正在尝试使用新的Razor SDK将我的视图包含在我的类库中,其中每个类库都是MVC区域.如果我在类库中包含带有Areas目录的视图,例如
然后加载很好.但是我不喜欢我必须将它们放在区域目录中,理想情况下路径是:
我猜我必须使用视图位置扩展器来实现这一点.但是我不知道如何为包含在类库中而不在应用程序中的视图实现此目的.到目前为止,我想出了: public class AreaViewLocationExpander : IViewLocationExpander { public virtual IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context,IEnumerable<string> viewLocations) { return viewLocations.Concat(new[] { "../{2}/Views/{1}/{0}" + RazorViewEngine.ViewExtension }); } public virtual void PopulateValues(ViewLocationExpanderContext context) { } } 这会引发错误:
但我想,即使它在本地工作,它也不会在生产中或者库被打包在NuGet包中. 如果有人能告诉我如何实现这一目标,我将不胜感激.谢谢 解决方法
步骤1
来自@pranavkm GitHub:
<Target Name="UpdateTargetPath" BeforeTargets="AssignRazorGenerateTargetPaths"> <ItemGroup> <RazorGenerate Include="@(RazorGenerate)" Link="$(TargetName)%(RazorGenerate.RelativeDir)%(RazorGenerate.FileName)%(RazorGenerate.Extension)" /> </ItemGroup> </Target>
第2步 然后,您需要添加以下IViewLocationExpander: public class AreaViewLocationExpander : IViewLocationExpander { public virtual IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context,IEnumerable<string> viewLocations) { return viewLocations.Concat(new[] { "/{2}/Views/{1}/{0}" + RazorViewEngine.ViewExtension }); } public virtual void PopulateValues(ViewLocationExpanderContext context) { } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在ASP.NET会话中存储任何内容导致500ms延迟
- asp.net-mvc – DataAnnotations动态附加属性
- asp.net – 使用Linq查询从DropDownList中选择一个ListItem
- BeginRequest触发ASP.NET MVC应用程序中的静态文件
- 树莓派-远程逗猫(二) —— 摄像头连接
- asp.net – IIS自定义错误未显示自定义错误页面
- ASP.net C#:如何使用File.ReadLines(fileName).GetEnumera
- 在IIS 8上发布asp vnext网站的问题
- asp.net-mvc – 如何更新实体框架连接字符串
- 防止在ASP.NET 4.0中上传大文件
- .net-4.0 – Asp.Net 4.0 CacheItemPolicy滑动到
- asp.net-mvc – 使用viewbag传递模型进行查看
- 无限分级和tree结构数据增删改【提供Demo下载】
- ASP.NET Web应用程序可防止拒绝服务攻击
- asp.net – 是否可以在ApplicationServices DB中
- asp.net – 什么是system.globalization它和本地
- asp.net – ASP菜单没有显示
- ASP.net安全cookie的安全性如何
- asp.net – WebBrowsable vs个性化Web部件
- asp.net – WebMethod未被Visual Studio 2013中的