我只想在asp.net mvc中自定义路由, 这是一个博客网站,我想使用
访问控制器方法wwww.sitename.com/blog/ {BLOGTITLE}
www.sitename.com/blog/ {动作}
博客控制器
public class BlogController : Controller
{
public ActionResult Index(string title)
{
return View();
}
[Route("post-blog")]
[HttpPost]
public ActionResult Post(Blog blog,HttpPostedFileBase blogimage)
{
//some coe
}
[Route("post-blog")]
public ActionResult Post()
{
if (Request.Cookies["userInfo"]==null)
{
return Redirect("/login");
}
return View();
}
}
这是路线配置
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//routes.Canonicalize().Www();
routes.Canonicalize().Lowercase();
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "freelogomaker", id = UrlParameter.Optional }
);
}
但我无法使用www.site.com/blog/titlename点击动作名称“Index” 但我可以使用www.site.com/blog/post-blog
访问“post-blog”请帮助我,我是asp.net mvc路由的初学者。
答案 0 :(得分:1)
将您的参数添加到{}括号内的路由属性,以指示它应该从URL中读取,而不是从其他内容中读取(例如POST正文,依赖注入等)
[RoutePrefix("blog")]
public class BlogController : Controller
我还想将RoutePrefix属性添加到控制器中以使其更清晰。
{{1}}