2014-01-09 29 views
3

我的web應用程序中有多個動作的多個路徑控件。如何在route.config中訂購多個路線?

此行動是由參數 -

routes.MapRoute(
      name: "SpecificRoute", 
      url: "{BusinessName}", 
      defaults: new { controller = "Business", action = "OpenPage" } 
       ); 

叫這一個是通過action名字叫和參數 -

routes.MapRoute(
       name: "ResumeRoute", 
       url: "{action}/{PublicResume}", 
       defaults: new { controller = "Business", action = "PublicResume" } 
       ); 

而對於所有的默認行爲我已經被默認 -

有一個路由控制
routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{*id}", 
     defaults: new { controller = "WelcomeLedger", action = "Welcome", id = UrlParameter.Optional } 
    ); 

我已經在本地IIS服務器上部署了此應用程序。

現在route.config文件出了點​​問題,也許我沒有正確地使用路線。

因此,此應用程序顯示我在每個動作上都有resource not found error,有時它在清潔解決方案後有效。

如何在不破壞使用方式的情況下使用操作?

這是將它添加上述兩個定製路由後,我的route.config文件 -

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Http; 
using System.Web.Mvc; 
using System.Web.Routing; 

namespace MvcApplication8 { 
    public class RouteConfig { 
     public static void RegisterRoutes(RouteCollection routes) { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 

      routes.MapRoute(
      name: "SpecificRoute", 
      url: "{BusinessName}", 
      defaults: new { controller = "Business", action = "OpenPage" } 
       ); 

       routes.MapRoute(
       name: "ResumeRoute", 
       url: "{action}/{PublicResume}", 
       defaults: new { controller = "Business", action = "PublicResume" } 
       ); 

      routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 

      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{*id}", 
       defaults: new { controller = "WelcomeLedger", action = "Welcome", id = UrlParameter.Optional } 
      ); 



     } 
    } 
} 

編輯 -

缺省路由未找到(resource not found)。

回答

1

我覺得你在你的默認路由有一個錯字:

routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{*id}", 
     defaults: new { controller = "WelcomeLedger", action = "Welcome", id = UrlParameter.Optional } 
    ); 

有ID前都有一個*,它應該是{id}而不是{*id}

+0

不,它是默認存在。請注意當我刪除自定義路線。資源錯誤永遠不會發生。但我確實需要兩種定義的路線。 – Manoj

+0

對不起,如果我誤解了你,但默認在mvc url:「{controller}/{action}/{id}」不是url:「{controller}/{action}/{* id}」,你確定嗎? – hutchonoid

+0

我不知道它爲什麼在那裏。是的,你是正確的默認路線。據說我的路由文件是正確的,除了這個錯字? – Manoj