MVC передать строки запроса - PullRequest
0 голосов
/ 07 апреля 2010

Я новичок в Microsoft.MVC, извините, если это глупый вопрос.

Я создал очень простой форум и сейчас пытаюсь создать для него некоторые функции тегов.

У меня есть контроллер, где индекс извлекает последние 10 тем форума. Я хотел бы передать строку запроса или что-то вроде Id в предоставленный тег на форум, чтобы я мог таким образом получить темы форума, например, иметь тег «ASP.NET».

Если бы это был обычный проект веб-форм, я бы просто поставил строку запроса с идентификатором тега на индексную страницу, а затем получил темы форума с тегом, но не было бы более разумного способа сделать это в MVC .NET

Причина, по которой я спрашиваю, не кажется ли это шагом назад от REST-URL, чтобы внезапно использовать «обычные» строки запроса?

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

Сначала вы определяете свое действие (как вы, вероятно, уже сделали) и добавляете параметры так, как вам нужно:

public ActionResult Forum(string tag, int page)
{
    // do your thing
    // ...

    return View();
}

Затем в вашем Global.asax.cs вы можете добавить маршрут, который обрабатывает параметры так, как вы хотите.

routes.MapRoute("Forum", "Forum/{tag}/{page}", new {controller = "Home", action = Forum"});

Это приведет к срабатыванию действия форума на HomeController при переходе по ссылке http://yourhost/Forum. Если вы затем щелкните ссылку «* 1010», то «asp.net» будет передан в параметр tag, а 1 - в параметр страницы.

0 голосов
/ 07 апреля 2010

Вы можете использовать помощник ActionLink html. Предполагая, что у вас есть контроллер форума и страница индекса, чтобы получить ссылку на /forums/index/1?tag=asp.net, вы можете сделать:

Html.ActionLink("ASP.NET", "index", new { id = 1, tag = "asp.net"})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...