Как настроить маршрут с подстановочными знаками в MVCC#

Место общения программистов C#
Ответить
Anonymous
 Как настроить маршрут с подстановочными знаками в MVC

Сообщение Anonymous »

URL-адрес любой страницы с описанием продукта на нашем сайте выглядит следующим образом:

http://example.com/Product/Index/pid219
Где:
  • Продукт — имя контроллера
  • Индекс — имя метода и
  • pid219 — идентификатор продукта
Я хотел бы, чтобы эта страница была доступна как

http://example.com/Product/pid219

ИЛИ

http://example.com/Product/name-of-the-product/pid219
Итак, я изменил RouteConfig.cs следующим образом:

Код: Выделить всё

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
name: "ProductRoute1",
url: "{controller}/{id}",
defaults: new { controller = "Product", action = "Index", id = "" }
);
routes.MapRoute(
name: "ProductRoute2",
url: "{controller}/{ignore}/{id}",
defaults: new { controller = "Product", action = "Index", id = "" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Теперь страница доступна по желанию, однако на всех других страницах существует проблема, которая вызывает вызов Ajax при нажатии кнопки.
Например: нажатие кнопки «Войти» не работает.
Имя контроллера — SignIn, и есть два метода — Index (который загружает страницу), SignInUser (который запускается по запросу ajax)
Когда я нажимаю кнопку «Войти», теперь используется метод Index вместо метода SignInUser.

Код: Выделить всё

function SignInUser() {
$.ajax({
type: "POST",
url: '@Url.Action("SignInUser", "SignIn")',
data: '',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
}
});
}
Если мы установим новый маршрут, необходимо также изменить URL-адрес в вызове ajax. Как я могу достичь своей цели здесь? Также укажите, должны ли новые маршруты объявляться до или после маршрута по умолчанию.

Подробнее здесь: https://stackoverflow.com/questions/524 ... ute-in-mvc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»