【发布时间】:2012-02-07 22:47:58
【问题描述】:
只需使用 MVC 3 RC2 和 RavenDB 构建一个快速、简单的站点来测试一些东西。
我已经做了很多项目,但我很好奇 Html.ActionLink() 如何处理 raven DB ID。
我的示例:我有一个名为“原因”的文档(某事的原因,主要是文本),其中包含原因文本和链接列表。我可以通过我的存储库添加、删除和执行其他所有操作。
下面是我的剃刀视图的一部分,它在项目符号列表中列出了每个原因,第一个文本是编辑链接:
@foreach(var Reason in ViewBag.ReasonsList)
{
<li>@Html.ActionLink("Edit", "Reasons", "Edit", new { id = Reason.Id }, null) @Reason.ReasonText</li>
<ul>
@foreach (var reasonlink in Reason.ReasonLinks)
{
<li><a href="@reasonlink.URL">@reasonlink.URL</a></li>
}
</ul>
}
问题
这工作正常,除了编辑链接。虽然此处的值和代码似乎可以直接工作(即链接直接触发),但 RavenDB 将我的文档 ID 保存为“reasons/1”。
因此,当 URL 发生并传递 ID 时,生成的路由是“http://localhost:4976/Reasons/Edit/reasons/2”。因此,ID 已正确附加,但 MVC 将其解释为自己的路由。
关于如何解决这个问题的任何建议?我需要创建一个特殊的路线来处理它还是我可以做些什么?
【问题讨论】:
-
完美!我遵循了第二个解决方案(将星号放在 Routes 中的 Id 前面),但这篇文章正是我想要的。)我将添加第二个答案来解释我究竟做了什么,但这是绝对是正确的答案。谢谢!
-
@goober _ 我的书签中有那个链接已经很久了。很高兴它终于得到了很好的利用。
标签: asp.net-mvc asp.net-mvc-3 actionlink ravendb