2009-05-02 9 views
1

ルーティングの問題が発生しています。デフォルトルートはうまく動作しますが、それ以外は何もしません。私が対応するアクション持っデフォルトルート以外のものにアクセスするとエラーが発生する

 routes.MapRoute(
      "HelloRoute", 
      "Hello/{name}", 
      new { controller = "Home", action = "Hello" } 
     ); 

     routes.MapRoute(
      "Default", 
      "{controller}/{action}/{id}", 
      new { controller = "Home", action = "Index", id = "" } 
     ); 

と私にHomeController上:

これらは私が設定している経路である私はhttp://localhost/に移動した場合

public ActionResult Index() 
    { 
     ViewData["Message"] = "Welcome to ASP.NET MVC on Mono!"; 
     return View(); 
    } 

     public ActionResult Hello(string name) 
    { 
     ViewData["Message"] = "hello "+name; 
     return View(); 
    } 

は今、私はへようこそメッセージが表示されますが.. 。 http://localhost/Hello/Worldに行った場合、エラーが発生します。

value name controller does not match any of the values. 

説明:HTTP 500.要求の処理中にエラーが発生しました。

スタックトレース:

のSystem.InvalidOperationException:値名コントローラは値のいずれかと一致していません。at System.Web.Routing.RouteData.GetRequiredString(System.String valueName)[0x00000] at System.Web.Mvc.MvcHandler.ProcessRequest(System.Web.HttpContextBase httpContext)[0x00000] at System.Web.Mvc。 MvcHandler.ProcessRequest(System.Web.HttpContext httpContext)[0x00000] System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(System.Web.HttpContext httpContext)の[0x00000] System.Web.HttpApplicationの[0x00000] + System.Web.HttpApplication.Tick()[0x00000]でc__Iterator2.MoveNext()[0x00000]

私は間違った何かをしていますか?

アクションルートとは別に、これはMonodevelopで作成された標準asp.net mvcプロジェクトです。

答えて

1

これはモノラルルーティング実装のバグであったことが判明しました。

ここにバグ報告を記入しました:https://bugzilla.novell.com/show_bug.cgi?id=500739。 それはまだ修正されていますが、まだ試していません。

1

このpostのコメントセクションに示唆されているように、MonoDevelopのASP.NET MVCテンプレートのバグのようです。

+0

ビジュアルスタジオでmvcアプリを作成してみました。 期待どおり、すべてのデフォルトルートが動作しましたが、私のカスタムルートは動作しませんでした。 だから私はそれはモノではなく、実際のルーティングのmvcテンプレートでそれほど問題ではないと推測しています。 –

+0

Visual Studio 2008でまったく同じことを行い、両方のルートが正常に動作したため、何かが不足しているはずです。 –

+0

申し訳ありませんが、ウィンドウで実行したときに機能しました。 mono + apacheに移動した後、動作しませんでした。 –

関連する問題