我已经设置了一个VirtualPathProvider
,它可以正常工作,如http://.../home/index
地址栏中的直接网址调用.
public class HomeController { public ActionResult Index() { // This triggers MyVirtualPathProvider functionallity when called via // the browsers address bar or anchor tag click for that matter. // But it does not trigger MyVirtualPathProvider for 'in-view' calls like // @{ Html.RenderAction("index", "home"); } return View(); } } public class MyVirtualPathProvider : VirtualPathProvider { public override System.Web.Hosting.VirtualFile GetFile(string virtualPath) { // This method gets hit after the Controller call for return View(...); if (MyCondition) return MyVirtualFileHandler.Get(virtualPath); return base.GetFile(virtualPath); } public override bool FileExists(string virtualPath) { // This method gets hit after the Controller call for return View(...); if (MyCondition) return true; return base.FileExists(virtualPath); } }
但是,我希望这也适用于Html帮助程序,但是现在它忽略VirtualPathProvider
了视图中的html帮助程序调用:
@{ Html.RenderAction("index", "home"); }
有没有办法解决这个问题?
另外,我有一个WebViewPage的覆盖,所以我可以覆盖帮助器的初始化,但我还没有得到什么或如何的线索.
编辑:
我在两台计算机上试过这个,奇怪的是,它可以在另一台计算机上运行.所以问题实际上会变成:
为什么VirtualPathProvider在一台计算机上运行,在另一台计算机上运行50%?但那么这个问题就会变得有点模糊,甚至是投机性的.尽管如此,我对此并不满意,但似乎我不得不重新安装一些东西.:(