Я устанавливаю поисковый маршрут:
routes.MapRoute(
"Search",
"Search/{q}",
new { controller = "Search", action = "Index" }
);
Поисковая форма имеет поле ввода и кнопку. Я хочу поиск с ПОЛУЧЕНИЕМ как ниже.
<% using(Html.BeginForm("Index", "Search", FormMethod.Get))
{%>
<%:Html.TextBox("q")%>
<% } %>
Действие с SearchController:
public ActionResult Index(string q)
{
// search logic here
return View(new SearchResult(q));
}
URL становится как это: http://localhost:19502/search?q=mvc+is+great
Но я хочу, чтобы поиск был похож: http://localhost:19502/search/mvc+is+great
Как я устанавливаю маршрут или HTML. BeginForm
Нет простого способа сделать это с помощью одной формы. Предполагаемая функция формы - передавать пары имя / значение - использование MVC этого не меняет.
Итак, ваши варианты:
Ваш маршрут уже правильно настроен, чтобы справиться с этим.
Или вы можете создать FormMethod.Post и в своем контроллере вернуть RedirectToActionResult