假设我有两个网址
http://www.example.com/page/one
http://www.example.com/page/one/subOne
如何让它们由同一个控制器处理。目前正在处理顶部地址,但第二个地址正在由不回显页面的回发函数处理。
所以对于我的路线配置,我有
routes.MapRoute("PageRule", "page/{id}", new { Controller = "document", action = "Index", id = UrlParameter.Optional });
routes.MapRoute("Page2Rule","page/{id}/{misc}", new { Controller = "document", action = "Index", id = UrlParameter.Optional });
在控制器中我有
// GET: Document
public ActionResult Index(string id, string misc )
和
// Post
[HttpPost]
public ActionResult postcomment(string gCaptcha,string txtName, string txtEmail, string txtMessage)
答案 0 :(得分:2)
我怀疑这可能是您需要的唯一途径:
routes.MapRoute("PageRule",
"page/{id}/{misc}",
new
{
Controller = "document",
Action = "Index",
misc = UrlParameter.Optional
});
请注意id
没有可选项。关键是id
和misc
不能同时是可选的 - 只有路线中的最后一个参数可以是可选的