MVC 3 RC2とRavenDBを使用してすばやくシンプルなサイトを構築するだけで、いくつかのことをテストできます。
たくさんのプロジェクトを作成することができましたが、Html.ActionLink()がレイヴンDBIDをどのように処理するかについて興味があります。
私の例:「reasons」(何かの理由、ほとんどはテキストのみ)というドキュメントがあり、理由テキストとリンクのリストがあります。リポジトリを介して、追加、削除、およびその他すべてを正常に実行できます。
以下は、最初のテキストとして編集リンクを使用して、箇条書きに各理由をリストする私のかみそりビューの一部です。
@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はそれを独自のルートとして解釈しています。
これを回避する方法について何か提案はありますか?それを処理するために特別なルートを作成する必要がありますか、それとも他に何かできることはありますか?