Asp.net mvc 3 如何处理更改我的路由值?
我有一个地方,改走这条路Asp.net mvc 3 如何处理更改我的路由值?,asp.net-mvc-3,Asp.net Mvc 3,我有一个地方,改走这条路 public class WeblogsAreaRegistration : AreaRegistration { public override string AreaName { get { return "Weblogs"; } } public override void RegisterArea(AreaRegistrationContext cont
public class WeblogsAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Weblogs";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Weblogs_default",
"Weblogs/{controller}/{action}/{blogName}/{post}",
new { action = "Index",
blogName = UrlParameter.Optional,post=UrlParameter.Optional}
);
}
}
这是我的索引
public ActionResult Index(string blogName,int post)
{
return View();
}
它的工作原理如下:
http://localhost:2927/Weblogs/Blogs?blogName=Myco&Post=3
但不是靠
http://localhost:2927/Weblogs/Blogs?blogName=Myco
有什么问题
如何更改路由以使用此URL:
http://localhost:2927/Weblogs/Blogs/Myco/3
“myco”是博客名,3是帖子号
有可能吗?从您的路线中移除您的
操作
和控制器
令牌。将其修改为:
context.MapRoute(
"Weblogs_default",
"Weblogs/Blogs/{blogName}/{post}",
new { action = "Index",
Controller = "Blogs",
blogName = UrlParameter.Optional,
post=UrlParameter.Optional}
);
谢谢,如果我删除了操作,它就可以工作了,但是当没有可用的post编号时,我该如何处理它呢。这应该能奏效。