2008-09-26 2 views
2

Недавно я начал работу с ASP.NET MVC, прочитал блоги, обучающие программы, попробовал некоторые маршруты и т. Д. Теперь я наткнулся на проблему, где мне нужна помощь.Нужна помощь ASP.NET MVC для маршрутизации

В принципе, у меня есть URL, как /products.aspx?categoryid=foo & ProductID = бар

Большинство учебников/примеры предлагают карту это что-то вроде:/продуктов/категории/Foo/бар, где «продукты «является контроллером,« категория »- это действие и т. д.

Но мне нужно сопоставить его с/products/foo/bar. (без категории ")

Возможно ли это? Я что-то упускаю? Помощь будет высоко оценена. Спасибо заранее :)

P.S. Извините за мой плохой английский.

ответ

5

(ваш английский очень хорошо, нет необходимости извиниться!)

Вы можете определить маршрут, как это:

routes.MapRoute("productsByCategory", "products/{category}/{productid}", 
    new { controller="products", action="findByCategory" }) 

Это будет соответствовать

products/foo/bar и вызвать действие выглядит следующим образом:

public class ProductsController : Controller 
{ 
    ... 

    public ActionResult FindByCategory(string category, string productid) 
    { 
      .... 
    } 
} 

это помогает?

+0

Работает как очарование! Я начинаю как рамки все больше L :) – ciscocert 2008-09-26 15:39:42

0

Вы могли бы также рассмотреть возможность сделать контроллер, чтобы проверить ваши собственные маршруты ...

Заканчивать Stephen Walther's blog entry об этом.

+0

Вы должны написать модульные тесты, чтобы протестировать свои собственные маршруты. Он автоматизирован, и нам нужно запускать его каждый раз, когда мы вносим изменения в контроллеры, действия или маршруты, поэтому зачем полагаться на проверку вручную? – 2008-09-26 19:03:18

Смежные вопросы