Создание предложений с ASP.NET MVC - PullRequest
0 голосов
/ 09 июля 2011

Я настолько одержим семантикой, и я хотел бы создавать осмысленные предложения с помощью правил маршрута ASP.NET MVC, которые семантически описывают действие. Например, я хочу назначить статью некоторым категориям, и для этого мне нужны следующие URL:

/assign/article-name/to-categories

который должен иметь это правило:

assign/{articleName}/to-categories

и

/assign/article-name/to/category-title/category

который должен иметь это правило:

assign/{articleName}/to/{categoryTitle}/category.

Некоторые примеры желаемых URL:

assign/seo/to/computer/category, или assign/how-to-drive-fast/to/general-knowledge/category, или подобные URL-адреса.

Проблема в том, что я не профессионал в маршрутизации MVC и не могу заставить это работать. Любая помощь, пожалуйста!

1 Ответ

3 голосов
/ 09 июля 2011

Должно работать следующее определение маршрута:

routes.MapRoute(
    "Assign",
    "assign/{articleName}/to/{categoryTitle}/category",
    new { controller = "Articles", action = "Assign" }
);

где у вас будет ArticlesController:

public class ArticlesController : Controller
{
    public ActionResult Assign(string articleName, string categoryTitle)
    {
        // TODO: handle the assigning
        return Content(string.Format("{0} {1}", articleName, categoryTitle), "text/html");
    }
}

Например, следующий запрос assign/seo/to/computer/category будет перенаправлен на действие Assign, которое будет передано articleName = seo и categoryTitle = computer.

...