Я работаю над проектом 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" }
);
Так что это почти работает как задумано. Когда я просто просматриваю форум, все работает нормально, но когда мне нужно опубликовать тему (метод Create на контроллере темы), происходит сбой:
Словарь параметров содержит
пустая запись для параметра 'id' из
необнуляемый тип 'System.Int32' для
метод 'System.Web.Mvc.ActionResult
Index (Int32, System.String, Int32) 'в
'MvcForum.Web.Areas.Forum.Controllers.ForumController.
Необязательный параметр должен быть
ссылочный тип, обнуляемый тип или
объявлен как необязательный параметр.
Имя параметра: параметры
Что в большей или меньшей степени сводится к тому, чтобы не использовать метод Create, а выбрать метод Index.
Есть идеи, что я делаю не так? И какие маршруты я должен был иметь / не должен заставить это работать?
Заранее спасибо!
Стин