Я пытаюсь поэкспериментировать с маршрутизацией и генерировать seo-friendly url для поиска.Несколько параметров маршрутизации с моделью представления в asp .net mvc
В настоящее время я ViewModel, как показано ниже:
public class SearchFormViewModel
{
//[Required(ErrorMessage="Keyword is required")]
public string Keyword { get; set; }
public IEnumerable<SelectListItem> TransactionTypes { get; set; }
public int TransactionTypeId { get; set; }
public IEnumerable<SelectListItem> RoomLookUps { get; set; }
public int? MinBeds { get; set; }
public int? MaxBeds { get; set; }
...
}
Когда эта форма получает представлен он идет к контроллеру:
public ActionResult SearchProperties(SearchFormViewModel viewModelInp)
{
// Perform search;
}
и отображаются результаты поиска. Тем не менее, URL, который получает генерируется следующим образом:
http://localhost:49191/search/searchproperties?Keyword=London&TransactionTypeId=2&MinBeds=&MaxBeds=&MinPrice=&MaxPrice=
Я требую URL, который выглядит как
http://localhost:49191/flats-to-rent/London?MinBeds=&MaxBeds=&MinPrice=&MaxPrice=
Я не знаю, как передать параметры из ViewModel в пути
в следующий маршрут не работает:
routes.MapRouteLowercase(
"Search-Properties-Buy",
"flats-to-rent/{Keyword}",
new { controller = "Search", action = "SearchProperties", Keyword = UrlParameter.Optional },
new { TransactionTypeId = "2" }
);
Я пробовал различные другие вещи, e, похоже, работает, и я получаю ошибку 404.
Я не могу найти ни одного примера, который мог бы мне помочь.
При отправке данные формы сериализуются и отправляются на сервер. В этом случае вы не используете ASP.NET MVC Routing. Ваш URL-адрес правильный, но никогда не работает с данными клиента. Я полагаю, что «URL-адрес, который генерируется, следующий» генерируется после нажатия кнопки отправки. –
Вы правы. Есть ли способ создать требуемый URL? – Tripping
Вам необходимо переопределить, на стороне клиента, нажать кнопку отправки кнопки отправки и создать строку, которая должна быть отправлена. Другого способа это не сделать. Дайте мне знать, вы делаете запрос POST или GET на сервер? –