2012-01-03 176 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 
     ); 

宣告默認操作是NewRequests,因此預計您AjaxController將有[HTTPGET] NewRequests行動。你可以做到這一點,

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

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

啊!我懂了!我將這個項目與一個工作的項目進行了比較,現在我注意到了這個工程的工作原理!謝謝! – Jeff 2012-01-03 08:39:03

+0

- 但有一件事,什麼的[HTTPGET]好?我從未在自己的行動方式中使用過它? – Jeff 2012-01-03 08:41:11

+0

這些是Action屬性,您可以控制此操作可以處理哪個HTTP動詞。有:HttpGet,HttpPost,HttpPut,HttpDelete – 2012-01-03 09:44:49

2

是否有NewRequests方法在Ajax控制器返回一個ActionResult?如果沒有,這是有意義的,因爲您的默認操作是NewRequests。

+0

我剛剛意識到!我的錯。 :) – Jeff 2012-01-03 08:39:26