【发布时间】:2011-08-22 06:12:27
【问题描述】:
我正在处理http://mvcforum.codeplex.com 项目。
我们有 2 个区域,Forum 和 ForumAdmin。
我有一些命名路由,用于制作一个不错的 URL,在 URL 中包含论坛/主题标题:
context.MapRoute("ShowTopic", "Forum/Topic/{id}/{title}", new { controller = "Topic", action = "Index" });
context.MapRoute("ShowForum", "Forum/Forum/{id}/{title}", new { controller = "Forum", action = "Index" });
context.MapRoute("ShowCategory", "Forum/Category/{id}/{title}", new { controller = "Category", action = "Index" });
context.MapRoute(
"Forum_default",
"Forum/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "mvcForum.Web.Areas.Forum.Controllers" }
);
所以这几乎可以按预期工作。当我只是浏览论坛时,一切正常,但是当我需要发布一个主题(主题控制器上的创建方法)时,它失败了:
参数字典包含一个 参数“id”的空条目 不可为空的类型“System.Int32” 方法'System.Web.Mvc.ActionResult 索引(Int32,System.String,Int32)' 在 'mvcForum.Web.Areas.Forum.Controllers.ForumController'。 可选参数必须是 引用类型,可为空的类型,或者是 声明为可选参数。 参数名称:参数
这或多或少归结为不使用 Create 方法,而是选择 Index 方法。
知道我做错了什么吗?我应该/不需要哪些路线才能使其正常工作?
提前致谢! 斯蒂恩
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 routes asp.net-mvc-routing asp.net-mvc-areas