На моем веб-сайте MVC я хотел бы настроить мои маршруты следующим образом:Невозможно выполнить маршрут «{controller}/{action}/{id}" и "{controller}/{id}"
site.com/Customer
- где вы можете выбрать заказчика.site.com/Customer/123
- где вы можете ознакомиться с информацией для выбранного клиента.
Так в основном, имея только один вид, что в зависимости от того, если у вас есть {id}
показывает разные вещи.
Так что я добавить отображенный маршрут DefaultNoAction
в RouteConfig.cs
:
// Route definitions.
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "DefaultNoAction",
url: "{controller}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Parameters2",
url: "{controller}/{action}/{id1}/{id2}",
defaults: new { controller = "Home", action = "Index", id1 = UrlParameter.Optional, id2 = UrlParameter.Optional }
);
И следующее в контроллере:
public ActionResult Index(int? id)
{
return View(id);
}
и вид:
@model int?
...
$(function() {
var customerId = @Model;
...
}
Сейчас:
- Если я пытаюсь доступа
site.com/Customer/123
я получу 404. - Если я иду в
site.com/Customer
@Model
не установлен ни к чему, поэтому, когда я ссылаться на него в моем JQuery он бросает синтаксическую ошибку, потому что он будет видетьvar customerId = ;
Очевидно, что я не подхо Любое направление?
Просто быстрая проверка - удалили ли маршрут по умолчанию для '{controller}/{action}/{id}'? – Max
Это маршрут до маршрута по умолчанию (порядок имеет значение) –
Не могли бы попросить поставить здесь полный RouteConfig.cs? Вы можете определенно пойти на маршрутизацию атрибутов. –