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 回答