asp.net-core-mvc – 什么是Asp.Net Core MVC中的IViewLocationExpande
|
我正在使用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-mvc – asp.net mvc – 如何告诉子操作忽
- asp.net-mvc – 在MVC SignalR服务器和Windows服
- asp.net-mvc – HttpPostedFileBase没有绑定到模
- ASP.NET中的超链接控件和链接控件有什么区别?
- asp.net-mvc-3 – ASP.Net MVC隐藏/显示基于安全
- asp.net-mvc – 如果我使用ASP .NET MVC 3,我可以
- asp.net – IIS将旧用户名返回到我的应用程序
- IIS是否记录请求标头信息?如果是的话,在哪里?
- asp.net-mvc-routing – @ Url.Action获取?附加
- asp.net-mvc – mvc视图中的动态类型
