asp.net-core-mvc – 什么是Asp.Net Core MVC中的IViewLocationE
我正在使用ASP.NET MVC CORE.我已经实现了自己的ViewLocationExpander,这样我就可以按照我想要的方式构建项目,并将我的视图放在我喜欢的位置.
这是通过实现一个继承自IViewLocationExpander的类来完成的,并且大多数工作都在以下方法中进行: ExpandViewLocations(ViewLocationExpanderContext context,IEnumerable<string> viewLocations) 一切都工作得很好,但界面定义了第二种方法,我不知道如何正确实现: PopulateValues(ViewLocationExpanderContext context) 我已经在互联网上阅读了关于这个界面的文章,但没有人真正提供过关于这个方法究竟是什么的更多信息,而不是说有关它如何帮助缓存的模糊事物. 如果有人可以解释框架如何使用这种方法以及如何适当地使用它来帮助缓存(如果它确实是它的用途),我真的很感激. 解决方法
也许直接从
GitHub MVC issue获取的以下附加信息可以回答您的问题:
最重要的是,OP提出的特定示例可以帮助更好地理解,至少这是发生在我身上的事情: >他的项目在两个不同的目录下有相同的名称 如果没有PopulateValues()中的任何代码,视图引擎将询问一次查找视图,然后使用视图“标准”数据(例如ControllerName,ActionName,Area等)以缓存查找视图的实际位置. 因此,在OP情况下,一旦视图位置被缓存(例如来自Foo目录树),每当需要具有相同名称的视图时,它将始终来自该树,将无法检测另一个中的那个是否存在.酒吧树本应该被拿起来. OP的唯一方法是通过向Values字典添加特定的,独特的视图细节来自定义PopulateValues():在当前场景中,这些是从当前操作上下文中提取的信息. 附加信息使用双重:ExpandViewLocations()可能在调用时使用它们以确定正确的位置,而视图引擎将使用它们一旦找到就缓存视图位置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-web-api – 密码更改时如何使OAuth令牌无效?
- rest – 基于权限从WebApi端点进行上下文序列化
- asp.net * WebForms *开发人员将来可以期待什么?
- asp.net – 使用没有MVC的路由:身份验证表单
- asp.net – UpdateProgress不适用于触发器属性内部的按钮
- asp.net-mvc – MVC5 – 数据注释 – 客户端验证没有发生?
- asp.net-web-api – 实现ASP.NET WebAPI版本控制的最佳方法
- asp.net – IIS 7错误请求响应时 存在于URL中
- asp.net-mvc – MVC 4安装失败
- asp.net-mvc – Web项目需要使用Razor语法3.0.0.0缺少Web组
- 如何在ASP.NET中实现浮动许可证?
- IoC在ASP.NET Web API中的应用
- asp.net core 3.0 中使用 swagger
- 在asp.net中使用Eval()是什么
- asp.net-mvc-3 – MVC3 – 使用ViewModel插入 –
- asp.net-core – 无法解析“Microsoft.Applicati
- asp.net – 加入LINQ的2个列表?
- ASP.NET FileUpload Control – 缓冲到磁盘时的安
- asp.net-core – 从ASP.NET Core 2.1应用程序中删
- asp.net-mvc-3 – 自定义ActionInvoker与MVC 3中