我們正在開發3個asp mvc應用程序,所有這些都需要一些相同的共享編輯器&顯示模板視圖。而不是在所有3個項目中複製/粘貼這些項目,是否有可能以某種方式將它們放入共享組件並在所有應用程序中以某種方式引用它們?有什麼方法可以在asp mvc應用程序中重新使用編輯器和顯示模板?
3
A
回答
1
如果您想從視圖文件夾以外的位置進行查看,則需要創建自己的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);
}
}
然後註冊您ViewEngine
在Global.asax
:
protected void Application_Start() {
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new CustomViewEngine());
}
此外,this post可能會有所幫助。 (太糟糕了底部的下載鏈接被打破,雖然)
編輯:看來這個解決方案將在實踐中行不通,因爲ASP.NET將不允許從應用程序的目錄之外加載的內容(見Eilon的評論)。
但上面的鏈接,在DB中存儲視圖,仍然可能有所幫助。
0
要共享多個ASP.NET應用程序之間的用戶控件(或幾乎任何內容),可以使用的伎倆在這裏列出:http://aspadvice.com/blogs/ssmith/archive/2006/10/05/Tip_3A00_-Share-User-Controls-Between-Applications-in-ASP.NET.aspx
的基本思想是將ASCX文件的文件夾中,使該文件夾中到其他應用程序的虛擬文件夾(您可以有多個虛擬文件夾指向同一物理文件夾)。
1
我不知道如何完成,但必須有一種方法來編譯DLL中的頁面並共享庫。
但是,如果你能負擔得起使用自定義視圖引擎和另一個模板系統(例如StringTemplate的),那麼你可以,如果你是共享庫共享訪問量:
- 創建一個類庫項目
- 照常創建您的模板並將它們標記爲「嵌入式資源」。這將確保它們將被放入庫DLL中編寫自定義視圖引擎以從程序集(DLL)中提取模板。一個良好的開端可能會被編輯/分叉現有:http://code.google.com/p/string-template-view-engine-mvc/source/browse/trunk/StringTemplateViewEngine/StringTemplateViewEngine.cs
- 然後在你的ASP.NET MVC項目
相關問題
- 1. 不使用編輯器模板的Asp MVC可重用控件
- 2. 應用程序不顯示我的編輯器/顯示模板?
- 3. 有沒有什麼辦法可以在ASP.NET MVC3中用Dictionary <K,V>來編輯和顯示模板?
- 4. 在MVC中可以重寫編輯器模板
- 5. 重用MVC PartialView行動PartialViewResult編輯/顯示模板
- 6. 「MVC」和「單頁應用程序」模板有什麼區別?
- 7. ASP.NET MVC 3 - 部分vs顯示模板與編輯器模板
- 8. 在asp mvc + angular應用程序中不顯示角度組件模板
- 9. Asp.net MVC不顯示模板編輯
- 10. 在頁面上編輯後顯示更新的數據在MVC應用程序中重新加載/刷新
- 11. 有什麼方法可以用googleDocs編輯器編輯我的文檔嗎?
- 12. 編輯器模板和顯示模板之間的區別
- 13. 官方「如何」爲MVC編輯器/顯示模板?
- 14. 我可以在.NET應用程序中使用Visual Studio模型編輯器嗎?
- 15. ASP .NET MVC 4中「Internet應用程序」模板中的ASP .NET使用的OAuth包是什麼?
- 16. 切換新的mvc應用程序模板以使用mysql
- 17. 有什麼方法可以在黑莓Java應用程序中使用Google Analytics?
- 18. asp.net的MVC:使用模板編輯器更新對象,
- 19. ASP.NET MVC編輯器模板
- 20. ASP .Net MVC Web應用程序集成引導程序模板
- 21. 模型更新時,有什麼方法可以使模板更新?
- 22. 在asp.net中級聯編輯器模板的最佳方法mvc
- 23. 有什麼方法可以在Django模板中重複使用模板標籤值嗎?
- 24. MVC模板編輯器和帖子
- 25. 使用MVC和Razor創建object.cshtml編輯器模板
- 26. 我應該使用什麼可編輯控件來在vb.net應用程序中顯示我的電子表格?
- 27. 在使用同步操作方法使用Asp Net Web Api的Asp Net MVC應用程序中使用異步操作方法有什麼好處?
- 28. MvcContrib網格和顯示/編輯模板
- 29. 人們如何使用編輯器/顯示模板與Html Helpers?
- 30. 有沒有什麼方法可以在Java應用程序中使用HTML和CSS用於我的UI?
這在手不解決問題註冊您的視圖引擎。它仍然不會從其他應用程序(或從應用程序之外的任何文件夾)加載用戶控件。 – Eilon 2010-01-05 01:30:20
@Eilon,你是不是指用戶控件共享視圖? – 2010-01-05 01:55:05
我的意思是說你的解決方案只允許你將用戶控件放在* same *應用程序中的其他文件中。原始問題要求*多個*應用程序共享相同的用戶控件的能力。 – Eilon 2010-01-05 02:42:35