0
 //In Controller this is what I have 
 public class AjaxController : Controller
 {

    [AcceptVerbs(new string[]{"GET"})]
    public ActionResult FindRooms(string selectedBuilding)
    {
        return Json(new { Room = "x"}, JsonRequestBehavior.AllowGet);
    }

 }

 //In Global.asax.cs I have  
 routes.MapRoute
 (
     "AjaxRoute1",
     "Ajax/FindRooms/{selectedBuilding}",
     new { controller = "Ajax", action = "FindRooms", selectedBuilding = "" }
 );

URL localhost/Ajax/FindRooms/SOMEBUILDING を参照するとします。SOMEBUILDING が FindRooms メソッドの selectedBuilding パラメータに渡されません。いつもヌル?? POST と GET の両方で機能するようにするには、どうすれば修正できますか?

4

1 に答える 1

0

TA氏が示唆したように、他のルートがこれに影響を及ぼします。ルーティングの順序は重要です。

デフォルトルートルートを最後に置いて、チャームのように機能します。

        routes.MapRoute
        (
           "AjaxRoute1",
           "Ajax/FindRooms/{selectedBuilding}",
           new { controller = "Ajax", action = "FindRooms", selectedBuilding = "" }
        );

        routes.MapRoute
        (
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional }

        );
于 2012-06-07T13:57:37.887 に答える