2014-10-30 16 views

回答

1

創建ViewRenderer在某些控制器的動作:

public ViewResult ViewRenderer(string viewPath) 
{ 
    var extractedPath = viewPath.Split('/'); 

    this.ControllerContext.RouteData.Values["controller"] = extractedPath[0]; 
    this.ControllerContext.RouteData.Values["action"] = extractedPath[1]; 

    return View(); 
} 

然後,在你RoutesConfig,默認的(最後一個)路線之前添加以下路由,適當地改變控制器名稱:

// Views Renderer 
routes.MapRoute(
    name: "ViewsRenderer", 
    url: "Static/{*viewPath}", 
    defaults: new { controller = "Common", action = "ViewRenderer" } 
); 

的網址是:

http://your_host_name/Static/Home/Index 

(你可以改變任何你喜歡的「靜態」)

這是一個非常基本的實現,它沒有考慮地區考慮(可很容易調整)。它也不能處理這種改變可能引入的所有安全影響(取決於您的應用程序的性質)。

+0

這將給404沒有代碼實際控制器類與指定的行動。 – artplastika 2014-10-30 12:12:53

+0

你試過了嗎? – haim770 2014-10-30 12:15:48

+0

當然!你呢?) – artplastika 2014-10-30 12:17:03

相關問題