Html帮助程序不使用自定义VirtualPathProvider

 心胸宽大的榛子lcf 发布于 2023-02-10 11:05

我已经设置了一个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%?但那么这个问题就会变得有点模糊,甚至是投机性的.尽管如此,我对此并不满意,但似乎我不得不重新安装一些东西.:(

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有