1
作为一个例子,我在一个控制器上有两个动作。 这两个操作都使用属性路由。在特定操作之外的视图上传递意外行为的属性。
[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导致它返回预期的网址。
上面代码的区别是“?”在路线中,即使该参数不是可选的。 最终,我想在其他视图上显示第二个链接作为菜单的一部分。
为什么没有放入可选的参数指示符,路由不会显示?
因为'orderId'不是可有可无的,你需要把它列入该网址'@ Url.RouteUrl(“Route2到”新{ orderId = xxx)' – Nkosi
把它放在一个答案,所以我可以相信你。 –
很高兴帮助。按要求完成。快乐编码! – Nkosi