ASP.NET MVC可选页面参数

时间:2016-10-26 20:18:20

标签: c# asp.net asp.net-mvc

假设我有两个网址

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)

1 个答案:

答案 0 :(得分:2)

我怀疑这可能是您需要的唯一途径:

routes.MapRoute("PageRule",
                "page/{id}/{misc}",
                new
                {
                    Controller = "document",
                    Action = "Index",
                    misc = UrlParameter.Optional
                });

请注意id没有可选项。关键是idmisc不能同时是可选的 - 只有路线中的最后一个参数可以是可选的