Q
嵌入式剃刀視圖
4
A
回答
1
在你的「殼」 MVC項目的Global.asax中的Application_Start註冊自定義的VirtualPathProvider:
HostingEnvironment.RegisterVirtualPathProvider(new CustomVirtualPathProvider());
實際的實現會比這更復雜,因爲你可能會做一些基於接口的,反射,數據庫查詢等作爲拉動元數據的一種手段,但是這將是總體思路(假設你有一個名爲「AnotherMvcAssembly」與富控制器和Index.cshtml查看其他MVC項目被標記爲嵌入的資源:
public class CustomVirtualPathProvider : VirtualPathProvider {
public override bool DirectoryExists(string virtualDir) {
return base.DirectoryExists(virtualDir);
}
public override bool FileExists(string virtualPath) {
if (virtualPath == "/Views/Foo/Index.cshtml") {
return true;
}
else {
return base.FileExists(virtualPath);
}
}
public override System.Web.Caching.CacheDependency GetCacheDependency(string virtualPath, System.Collections.IEnumerable virtualPathDependencies, DateTime utcStart) {
if (virtualPath == "/Views/Foo/Index.cshtml") {
Assembly asm = Assembly.Load("AnotherMvcAssembly");
return new CacheDependency(asm.Location);
}
else {
return base.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);
}
}
public override string GetCacheKey(string virtualPath) {
return base.GetCacheKey(virtualPath);
}
public override VirtualDirectory GetDirectory(string virtualDir) {
return base.GetDirectory(virtualDir);
}
public override VirtualFile GetFile(string virtualPath) {
if (virtualPath == "/Views/Foo/Index.cshtml") {
return new CustomVirtualFile(virtualPath);
}
else {
return base.GetFile(virtualPath);
}
}
}
public class CustomVirtualFile : VirtualFile {
public CustomVirtualFile(string virtualPath) : base(virtualPath) { }
public override System.IO.Stream Open() {
Assembly asm = Assembly.Load("AnotherMvcAssembly");
return asm.GetManifestResourceStream("AnotherMvcAssembly.Views.Foo.Index.cshtml");
}
}
2
您可以使用我的EmbeddedResourceVirtualPathProvider,它可以通過Nuget安裝。它從引用的程序集加載資源,並且可以設置爲在開發過程中依賴源文件,因此您可以在不需要重新編譯的情況下更新視圖。
相關問題
- 1. ASP.Net剃刀視圖
- 2. EF加入和MVC剃刀視圖
- 3. 嵌入在MVC3剃鬚刀視圖中的腳本標記
- 4. 如何在asp.net mvc剃鬚刀視圖中嵌入rdl報告?
- 5. ASP.NET剃刀模式語法在視圖
- 6. MVC3剃刀視圖PopUps
- 7. MVC剃刀從子視圖
- 8. 局部視圖MVC3剃刀
- 9. MVC3剃刀視圖引擎
- 10. ApiControllers和剃刀視圖
- 11. 在MVC4剃刀視圖InvalidOperationException
- 12. 敲刀不在剃刀視圖
- 13. 剃刀視圖和局部視圖
- 14. 剃刀形式
- 15. visual studio 2015,resharper,剃刀和格式化嵌入式html
- 16. MVC3剃刀Camtasia的視頻嵌入,@ PARAM錯誤:-(
- 17. 如何向MVC中的嵌套視圖提供模型(剃刀)
- 18. 是否可以在剃鬚刀內嵌入另一種形式?
- 19. MVC5剃刀輸入圖像到控制器從視圖
- 20. 在cshtml剃刀視圖中分離JavaScript
- 21. 在剃刀中調用部分視圖
- 22. 在視圖外修改剃刀布局
- 23. MVC3剃刀弱類型視圖?
- 24. Aurelia映射到剃刀視圖
- 25. 使用aciTree的MVC剃刀樹視圖
- 26. 動態執行剃刀視圖
- 27. 我如何分離剃刀視圖?
- 28. MVC3剃鬚刀 - 模型和視圖
- 29. WebAPI和剃刀視圖引擎
- 30. 使用webforms視圖和剃刀布局
你的圖書館爲我工作。感謝您通過製作nuget包的努力。 –