2012-02-25 78 views
0

如何分配給WebPage或WebPageBase的UrlData和PageData屬性?我試圖編寫一個自定義的路由處理程序,它說屬性是隻讀的。這就是我要完成的:如何在自定義路由處理程序中分配給PageData和UrlData?

using System; 
using System.Collections.Generic; 
using System.Web; 
using System.Web.Routing; 
using System.Web.WebPages; 

/// <summary> 
/// Summary description for CustomRazorRouteHandler 
/// </summary> 
public class CustomRazorRouteHandler : IRouteHandler 
{ 
    public string VirtualPath { get; set; } 

    public CustomRazorRouteHandler(string virtualPath) 
    { 
     this.VirtualPath = virtualPath; 
    } 

    public IHttpHandler GetHttpHandler(RequestContext requestContext) 
    { 
     var page = WebPage.CreateInstanceFromVirtualPath(VirtualPath); 
     foreach (var item in requestContext.RouteData.Values) 
     { 
      page.PageData[item.Key] = item.Value;  // Null reference exception 
      page.UrlData.Add(item.Value.ToString()); // Read-only error 
     } 

     var handler = WebPageHttpHandler.CreateFromVirtualPath(VirtualPath); 
     return handler; 
    } 
} 

的Web應用程序是爲中等信任,這樣的反思是不是一個真正的選擇。

回答

0

似乎沒有辦法分配PageData和UrlData沒有反射,因爲列表被標記爲只讀。我的工作是創建一些幫助器,將url peices存儲在HttpContext中並將其讀回。

相關問題