我怎样才能像这个网址一样(http://www.domain.com/friend-content-title http://www.domain.com/friendly-content-title)在 Asp.Net MVC 4 中。
注意:该参数始终是动态的。URL 可能不同:“友好内容标题”
我尝试自定义属性,但在 ActionResult 中没有捕获此(友好内容标题)参数。
Views:
行动结果:
// GET: /Home/
public ActionResult Index()
{
return View(Latest);
}
// GET: /Home/Video
public ActionResult Video(string permalink)
{
var title = permalink;
return View();
}
路由配置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Home Page",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Video Page",
url: "{Home}/{permalink}",
defaults: new { controller = "Home", action = "Video", permalink = "" }
);
}
我应该怎么做才能捕获 url (/friend-content-title)?
要启用属性路由,请在配置期间调用 MapMvcAttributeRoutes。以下是代码片段。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
}
}
在MVC5中,我们可以将属性路由与基于约定的路由结合起来。以下是截取的代码。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
通过向路由参数添加问号,可以很容易地将 URI 参数设置为可选。我们还可以使用parameter=value 的形式指定默认值。here http://www.dotnet-stuff.com/tutorials/aspnet-mvc/understanding-url-rewriting-and-url-attribute-routing-in-asp-net-mvc-mvc5-with-examples是全文。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)