gpt4 book ai didi

asp.net-mvc - 有没有办法在 asp mvc 应用程序中重用编辑器和显示模板?

转载 作者:行者123 更新时间:2023-12-02 02:35:36 24 4
gpt4 key购买 nike

我们正在开发 3 个 asp mvc 应用程序,所有应用程序都需要一些相同的共享编辑器和显示模板 View 。与其在所有 3 个项目中复制/粘贴这些内容,不如以某种方式将它们放在一个共享组件中并在所有应用程序中以某种方式引用它们?

最佳答案

如果您想从 Views 文件夹以外的地方访问 View ,您将需要创建自己的 ViewEngine

public class CustomViewEngine : WebFormViewEngine {
public CustomViewEngine() : base() {

MasterLocationFormats = new[] {
"/YourFolder/{1}/{0}.master",
"/YourFolder/Shared/{0}.master"
};

ViewLocationFormats = new[] {
"/YourFolder/{1}/{0}.aspx",
"/YourFolder/{1}/{0}.ascx",
"/YourFolder/Shared/{0}.aspx",
"/YourFolder/Shared/{0}.ascx"
};

PartialViewLocationFormats = ViewLocationFormats;
}

//Override the FindView method to implement your own logic
public override ViewEngineResult FindView(
ControllerContext controllerContext, string viewName,
string masterName, bool useCache)
return base.FindView(controllerContext, viewName, masterName, useCache);
}
}

然后在 Global.asax 中注册您的 ViewEngine :

protected void Application_Start() {
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new CustomViewEngine());
}

此外,this post可能会有帮助。 (可惜底部的下载链接坏了)

编辑:看来这个解决方案在实践中行不通,因为 ASP.NET 不允许从应用程序目录外部加载内容(参见 Eilon 的评论)。< br/>但是上面的链接(将 View 存储在数据库中)仍然有用。

关于asp.net-mvc - 有没有办法在 asp mvc 应用程序中重用编辑器和显示模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1996403/

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