如何更改mvc动态页面路由URL - 为什么这不起作用?

时间:2009-11-02 18:17:09

标签: asp.net-mvc

对于下面的控制器,为什么对http://localhost:port/content/about的调用不会传递“about”作为索引控制器的page参数的值?默认路由。显然我不明白路由......

    public class ContentController : Controller
    {
        private IContentService _service;

        public ContentController()
            {
                _service = new ContentService(new ModelStateWrapper(this.ModelState), new ContentRepository());
            }


        public ActionResult Index(string page)
        {
            return RedirectToAction("View", new { p = page });
        }
        public ActionResult Page(string p)
        {    
            ContentPage contentPage = _service.GetPageContent(site, p);
            return View(contentPage);
        }
}

2 个答案:

答案 0 :(得分:1)

默认路由假设您使用以下模式:{action} / {id}。你没有用这个。您需要重新声明您的路线,以便将所有内容发送到“索引”操作并传递“p”参数。

答案 1 :(得分:0)

你在运行IIS6吗?如果是这样,请确保将asp.net isapi dll映射到.mvc扩展名。

路由在上周杀了我,直到我发现了......