在ASP.Net MVC3中获取System.Web.UI.Page对象(只读)



我正在构建一个MVC3网站(C#,Razor),该网站使用VB.Net中编写的一些类来进行一些复杂的验证。这些类的构造函数中需要一个System.Web.UI.Page对象,因为它们使用Page对象中的Request.Form和Server.MapPath。

我可以完全使用那些旧的VB.Net类,但我需要Page对象。有什么办法做到这一点吗?还是应该重构VB.Net类中的大量代码?(需要几个小时…)

我读到过为什么你不应该使用Page对象,因为有更好的替代方案,但我只需要它能够使用几年后将被重构的旧库。。。

Thx!

您可以创建一个新的页面对象,这可以让Server.MapPath()开箱即用。请求是另一回事。我所知道的最简单的设置方法是反射:

        var page = new Page();
        var requestField = typeof(Page).GetField("_request", BindingFlags.Instance | BindingFlags.NonPublic);
        requestField.SetValue(page, HttpContext.Current.Request);

最新更新