我有控制器名称:关于和操作名称:索引。但我希望URL就像这样(动作名称将是动态的)
www.example.com/about/aaa www.example.com/about/bbb www.example.com/about/ccc
路由
routes.MapRoute(
name: "About",
url: "{controller}/{name}",
defaults: new { controller = "About", action = "Index"}
控制器
public class AboutController : Controller
{
//
// GET: /About/
public ActionResult Index(string name)
{
return View();
}
}
}
查看
@{
ViewBag.Title = "Index";
}
<h2>Index About</h2>
答案 0 :(得分:4)
这应该有用。
routes.MapRoute(
name: "About",
url: "About/{name}",
defaults: new
{
controller = "About",
action = "Index"
});
确保您的默认路线存在,并在关于路线
之后答案 1 :(得分:0)
routes.MapRoute(
name: "About",
url: "about/{name}/{id}",
defaults: new { controller = "About", action = "Index", id=UrlParameter.Optional}
答案 2 :(得分:0)
您可以将ActionResult名称作为参数传递:
public ActionResult Index(string name)
{
return View(name);
}
public ActionResult First()
{
return View();
}
public ActionResult Second()
{
return View();
}
在视图中:
@Html.ActionLink("Get Action named Firts" "Index", "Home", new {name = "First"}, null)