[英]I want Create Url like in www.mysite.com/home/details/1/lesson1 in mvc with Url.action
我想用Url.Action
在mvc中创建url
我的代码是
Url.Action( "Details", "Home", new { id= item.Id ,title=item.Title}, "http" )
但是这段代码创建了像
http://localhost:45201/Admin/Home/Details/1?title=lesson1
我想要像
http://localhost:45201/Admin/Home/Details/1/lesson1
取决于您如何定义路线。
将此用于基于约定的路由
routes.MapRoute(
name: "AdminHomeDetails",
url: "Admin/Home/Details/{id}/{title}",
defaults: new { controller = "Home", action = "Details" }
);
或将其用于属性路由:
[RoutePrefix("Admin/Home")]
public class HomeController : Controller {
//GET Admin/Home/Details/1/lesson1
[Route("Details/{id:int}/{title}")]
public ActionResult Details(int id, string title) { ... }
}
属性路由不要忘了在基于约定的路由之前映射属性路由
public class RouteConfig {
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
//...and then convention-based routes.
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index" }
);
}
}
有关属性路由的更多信息,请检查ASP.NET MVC 5中的属性路由。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.