Маршруты в Global.asax не регистрируются - PullRequest
0 голосов
/ 01 сентября 2010

Привет, ребята, у меня есть этот вызов JQuery Ajax с моей точки зрения, и он выглядит так:

$("select#Colors").change(function() {
        var color = $("#Colors > option:selected").attr("value");

        $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: "FindProducts/" + color,
            data: "{}",
            dataType: "json",
            success: function(data) {
               .....
            }
        });

    });

И вот метод действия в моем HomeController

public JsonResult FindProductsByColorID(string color)
{
    // List of Products
    List<Product> productList = new List<Product>{
           new Product{......}
        };

  // return Json result using LINQ to SQL
  return new JsonResult
  {
    Data = (from p in productList
            where p.Color == color
            select p).ToArray<Product>()
  };
}

Моя цель здесьчтобы вызвать метод FindProductsByColorID используя JQuery.ajax.и поскольку имя немного длинное, я зарегистрировал URL в таблицу маршрутизации global.asax.

routes.MapRoute(
       "FindProducts",
       "FindProducts/{color}",
        new { controller = "Home", action = "FindProductsByColorID", color = ""}
       );

По некоторым причинам маршрутизация не произошла во время вызова ajax, когда я тестировал его в Firebug, URL показывает Localhost / Home / FindProducts / Red.Конечно, результаты не удалось загрузить, потому что в домашнем контроллере нет метода FindProducts.я сделал что-то не так с маршрутизацией или что-то?потому что когда я проверял это на новом новом проекте, он работал просто отлично, но когда я делал это на моем текущем проекте, он просто терпел неудачу.Любое решение будет очень цениться!

Ответы [ 2 ]

2 голосов
/ 01 сентября 2010

Вот WAG: измените его на url: "/FindProducts/" + color, (обратите внимание на /)

0 голосов
/ 01 сентября 2010

Ваш маршрут неправильный. Маршрут должен выглядеть как



routes.MapRoute(
                "NameOfRoute",           
                "{controller}/{action}/{parameters}",     
                new { controller = "DefaultContoller", 
                      action = "DefaultMethod", 
                      parameters = { DefaultParameters} }
               );


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...