В качестве примера у меня есть два действия на одном контроллере. Эти действия используют маршрутизацию атрибутов.Атрибут маршрутизации непредвиденного поведения при просмотре вне определенного действия.
[Route("proofCampaign/{campaignId?}", Name ="Route1")]
public ActionResult ProofCampaign(int campaignId){
//Do stuff
return View{campaignVM}
}
[Route("proofOrder/{orderId}", Name ="Route2")]
public ActionResult ProofOrder(int orderId){
//Do stuff
return View{orderVM}
}
Когда я использую @Url.RouteUrl("Route1")
любой точки зрения я получаю правильный URL, но когда я пытаюсь использовать @Url.RouteUrl("Route2")
на любом виде я получаю нуль.
Однако, когда я перехожу к фактической странице/представлению о том, что Route2 ведет к ней, возвращается ожидаемый url.
Разница в приведенном выше коде является «?» в маршруте, хотя параметр не является необязательным. В конечном счете, я хочу отобразить вторую ссылку на другие виды как часть меню.
Почему маршрут не отображается, не помещая необязательный индикатор параметра?
Поскольку 'orderId' не является факультативным вам необходимо включить его в URL-адрес' @ Url.RouteUrl («route2», новый { orderId = xxx) ' – Nkosi
Положите это в ответ, чтобы я мог счесть вас этим. –
Рад помочь. Выполнено в соответствии с запросом. Счастливое кодирование !!! – Nkosi