2012-01-03 10 views
0

私はAjaxハンドラのための別のコントローラを作成しようとしています - 今私はAppController(サイトコントローラ)とAjaxController(Ajaxリクエストハンドラ)を持っています。C#MVC3 - "リソースが見つかりません"

http://LocalHost:82/Ajaxにアクセスすると、The resource cannot be foundになるという問題があります。 http://LocalHost:82/Ajax/Indexにアクセスすると動作します。

問題はデフォルトルーティングです。ここに私のルーティングがあります:

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

もっと情報が必要な場合は尋ねることを躊躇しないでください。ありがとう!

答えて

3

あなたのルーティング:

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

は、あなたのAjaxControllerは[HTTPGET] NewRequestsアクションを持っていることが予想されるので、デフォルトのアクションは、NewRequestsであることを宣言します。あなたは

[HttpGet] 
public ActionResult NewRequests() 
{ 
    // ... 
} 

または

[HttpGet, ActionName("NewRequests")] 
public ActionResult WhatEverNameOfActionYouLike() 
{ 
    // ... 
} 
+0

Aaah!そうですか!私はこのプロジェクトと比較していましたが、今はルーティングの仕組みに気付きました!ありがとう! – Jeff

+0

- しかし、1つのこと、[HttpGet]は何のために良いですか?私は自分のアクションメソッドでそれを使ったことはありませんか? – Jeff

+0

これらはアクション属性で、このアクションで処理できるHTTP動詞を制御できます。あります:HttpGet、HttpPost、HttpPut、HttpDelete –

2

AjaxコントローラにActionResultを返すNewRequestsメソッドがありますか?そうでない場合、これはデフォルトアクションがNewRequestsなので意味があります。

+0

私はちょうどそれを実現し、そのことによって行うことができます!私の悪い。 :) – Jeff

関連する問題