2014-03-30 159 views
1

我正在做一個小的項目,有一個頁面,顯示可供下載的應用程序列表。我在RouteConfig.cs路由看起來是這樣的:自定義路由在asp.net mvc 4

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "ViewApplication", 
      url: "View/{applicationname}", 
      defaults: new { controller = "View", action = "ViewApplication"} 
     ); 

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

凡我控制器看起來是這樣的:

public class ViewController : Controller 
{ 
    public ActionResult ViewApplication(string applicationname) 
    { 
     return View(); 
    } 
} 

但每當我試圖瀏覽到本地主機:50788 /查看/ A610723失敗,和URL更改爲localhost:50788 /?並留在主頁上。

我看了一下這個問題 MVC 4: Custom Routes 而且它幾乎完全一樣,我想做的事情,在那裏它們被使用beername作爲一個字符串,但我不工作。

有什麼我錯過了嗎?

謝謝

回答

1

您的解決方案似乎是正確的。你確定你的錯誤不在別的地方嗎?

下面是從這個鏈接一個小例子:

http://www.asp.net/mvc/tutorials/controllers-and-routing/creating-custom-routes-cs

它看起來酷似您的解決方案。

using System.Web.Mvc; 
using System.Web.Routing; 

namespace MvcApplication1 { 
public class MvcApplication : System.Web.HttpApplication { 

    public static void RegisterRoutes(RouteCollection routes) { 

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute( 
      "Blog", // Route name 
      "Archive/{entryDate}", // URL with parameters 
      new { controller = "Archive", action = "Entry" } // Parameter defaults 
      ); 

      routes.MapRoute("Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
      ); 
    } 

    protected void Application_Start() { 

      RegisterRoutes(RouteTable.Routes); 

    } 
    } 
} 

這裏是控制器:

using System; using System.Web.Mvc; 

namespace MvcApplication1.Controllers { 
public class ArchiveController : Controller { 

    public string Entry(DateTime entryDate) { 
      return "You requested the entry from " + entryDate.ToString(); 
    } 
    } 
} 
+0

感謝確認, 我只是擔心我錯過了一些明顯的像一個拼寫錯誤或錯誤的定義。我真的找不到任何理由不正確的路由,我直接輸入網址到瀏覽器,所以只有路由器和控制器參與? –

+0

嗯,我這麼認爲。你有沒有試圖複製我提到的例子?它有用嗎?我會在今天晚上測試你的代碼,看看我是否得到相同的錯誤。 –

+0

你說得對,問題在別處。我在ViewApplication.cshtml文件的名稱中有一個錯字。 非常感謝您的幫助 –