URL-адрес любой страницы сведений о продукте на нашем сайте выглядит следующим образом:
http://example.com/Product/Index/pid219
Где:
- Product - это имя контроллера
- Index - это название метода, а
- 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)
Когда я нажимаю кнопку «Войти», вместо метода SignInUser теперь используется метод Index.
function SignInUser() {
$.ajax({
type: "POST",
url: '@Url.Action("SignInUser", "SignIn")',
data: '',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
}
});
}
Если мы задаем новый маршрут, следует ли изменить URL-адрес в вызове ajax,Пожалуйста, помогите мне, как я могу достичь своей цели здесь.Также укажите, нужно ли объявлять новые маршруты до или после маршрута по умолчанию.