我有一个区域,我已经调用了论坛,现在,在线程列表页面中,我有线程链接,生成如下:
@Html.ActionLink(title, "Thread", "Forums", new { category = item.CategoryName, item = item.Id, page = 0 }, null)
现在,当我打开一个线程,并且我想从一个线程中获取当前线程的链接时,我正在这样做(在线程中):
@Html.ActionLink(title, "Thread", "Forums", new { category = Model.Post.CategoryName, item = Model.Post.ThreadId, page = Model.Page }, null)
线程列表页面和线程页面都在同一区域。 现在一起来看两个动作链接:
1. @Html.ActionLink(title, "Thread", "Forums", new { category = Model.Post.CategoryName, item = Model.Post.ThreadId, page = Model.Page }, null)
2. @Html.ActionLink(title, "Thread", "Forums", new { category = item.CategoryName, item = item.Id, page = 0 }, null)
这两个动作链接几乎相同(Model
包含有效数据,我已经检查过),但它们生成了不同的链接:
第一个:
http://localhost:11227/Forums/Thread/1?category=Kosz&page=0
第二个:
http://localhost:11227/Forums/Thread/Kosz/1/0
第二个生成正确的链接,而第一个...我不知道第一个做什么。它们之间的唯一差异就是执行它们的地方,如上所述,第一个在线程中执行,第二个在线程列表页面中执行。
我该怎么做才能修复第一个链接?
更新:已添加路线:
context.MapRoute(
"Forums_thread",
"Forums/{action}/{category}/{item}/{page}",
new { controller = "Forums", page = UrlParameter.Optional }
);
第二次更新我认为我真的发现了一些错误?感谢Eilon的回复,我发现了这个:
@Html.ActionLink("something", "Thread", "Forums", new { category = "Kosz", item = Model.Post.ThreadId, page = Model.Page }, null)
生成正确的链接,而这个:
@Html.ActionLink("something", "Thread", "Forums", new { category = Model.Post.CategoryName, item = Model.Post.ThreadId, page = Model.Page }, null)
生成错误的链接(Model.Post.CategoryName
仍然是"Kosz"
)!我不知道发生了什么......
答案 0 :(得分:0)
请更正以下路线
context.MapRoute(
"Forums_thread",
"Forums/{action}/{category}/{item}/{page}",
new { controller = "Forums",category="category", item="item",page = UrlParameter.Optional }
);