Asp.net mvc MVC 5路由,参数为@Url.RouteUrl
我有一个已应用路由属性的ActionResult:Asp.net mvc MVC 5路由,参数为@Url.RouteUrl,asp.net-mvc,routing,asp.net-mvc-5,asp.net-mvc-routing,Asp.net Mvc,Routing,Asp.net Mvc 5,Asp.net Mvc Routing,我有一个已应用路由属性的ActionResult: [Route("myproduct/{productID}", Name = "myproduct")] [MvcSiteMapNode(Title = "Products", ParentKey = "products", Key = "myproducts")] public ActionResult myproducts(int productID) ... 我正在尝试通过RouteUrl链接到视图: <a href="@Url.
[Route("myproduct/{productID}", Name = "myproduct")]
[MvcSiteMapNode(Title = "Products", ParentKey = "products", Key = "myproducts")]
public ActionResult myproducts(int productID) ...
我正在尝试通过RouteUrl链接到视图:
<a href="@Url.RouteUrl("myproducts", @Model.myproducts[i].productID)">Buy</a>
尝试:
并改变你的行动路线,如:
[Route("myproducts/{productID}", Name = "myproducts")]
[MvcSiteMapNode(Title = "Products", ParentKey = "home", Key = "myproducts")]
public ActionResult myproducts(int productID) {
}
尝试:
并改变你的行动路线,如:
[Route("myproducts/{productID}", Name = "myproducts")]
[MvcSiteMapNode(Title = "Products", ParentKey = "home", Key = "myproducts")]
public ActionResult myproducts(int productID) {
}
我可以看到几个问题:
- 未正确传递参数,因为您直接将productId作为方法的第二个参数传递。您应该正确地传递它(并小心使其与路由中的参数名称匹配),例如使用匿名对象:
@Url.RouteUrl("myproduct", new { productID = Model.myproducts[i].productID })
- 属性中的路由名称和@Url帮助器中的名称不同(请参见myproductVsmyproducts):
- 未正确传递参数,因为您直接将productId作为方法的第二个参数传递。您应该正确地传递它(并小心使其与路由中的参数名称匹配),例如使用匿名对象:
@Url.RouteUrl("myproduct", new { productID = Model.myproducts[i].productID })
- 属性中的路由名称和@Url帮助器中的名称不同(请参见myproductVsmyproducts):
- 我可以看到几个问题:
[Route("myproducts/{productID}", Name = "myproducts")]
[MvcSiteMapNode(Title = "Products", ParentKey = "home", Key = "myproducts")]
public ActionResult myproducts(int productID) {
}
@Url.RouteUrl("myproduct", new { productID = Model.myproducts[i].productID })
[Route("myproduct/{productID}", Name = "myproduct")]
@Url.RouteUrl("myproducts", @Model.myproducts[i].productID)