gpt4 book ai didi

asp.net-mvc - 按名称查找MVC模板 View

转载 作者:行者123 更新时间:2023-12-04 11:42:51 24 4
gpt4 key购买 nike

我正在写一个 HtmlHelper扩展名,我需要按名称搜索模板的存在。根据上下文,所讨论的模板可能是显示模板或编辑器模板。我最初的想法是使用 ViewEngines.Engines.FindPartialView方法。但是,该方法似乎没有搜索~/Views/Shared/DisplayTemplates~/Views/Shared/EditorTemplates目录。
我想这是有充分理由的。毕竟ViewEngine怎么会知道是否返回显示或编辑器模板而没有上下文的一些附加信息?

所以,这就引出了一个问题:我如何搜索特定的 EditorTemplate/DisplayTemplate 我已经考虑将自定义 View 引擎添加到 ViewEngines集合以包含这些位置。但是,我担心这可能有问题。

我主要担心的是 DisplayTemplate/EditorTemplate View 可能会被用于意外的东西。有没有其他人认为这是一个问题?
只是更新一个特定的 DisplayTemplateViewEngine 是否更好?/EditorTemplateViewEngine必要时实例并保留 ViewEngines收藏清楚这个特定的功能?
还有什么我想念的吗?

最佳答案

我非常喜欢 MVC 框架是开源的!我能够从 TemplateHelpers 类(MVC 运行时内部)确定在呈现模板时考虑了 DataBoundControlMode。答案很简单!我所要做的就是在模板名称前面加上适当的模板主管。因此,要查找显示模板:

var metadata = ModelMetadata.FromLambdaExpression(expression, HtmlHelper.ViewData);
ViewEngines.Engines.FindPartialView(
_controllerContext,
string.Format("DisplayTemplates/{0}", metadata.TemplateHint))

不需要额外的 View 引擎或路由!如果您对该应用程序感兴趣,我的助手会为给定模型自动生成 UI 组件。我想启用自定义模板来绕过自动渲染。

关于asp.net-mvc - 按名称查找MVC模板 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16340894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com