1

私のアプリケーションには次の設定があります。

routes.MapRoute("Default", 
                "{controller}/{action}/{idt}", 
                new { controller = "Home", 
                      action = "Index", 
                      idt = UrlParameter.Optional });

DB/モデルのidtパラメーターと主キーに整数の代わりにGUIDを使用しています。

アプリケーションの「メイン」メニューに次のものがあります。

@Html.ActionLink("Create invoice", "Create", "Invoices")

アプリケーションを起動して、このリンクが指しているパスを確認すると、正しいパスです。/Invoices/Create

しかし、このパスは請求書の編集にも使用されるため、パスを含むページを開いて/Invoices/Create/0eb262cc-a623-41f5-9b32-fd452691f426から「メイン」リンクのパスを見ると、それは を指してい/Invoices/Create/0eb262cc-a623-41f5-9b32-fd452691f426ます。

それは何についてですか?「固定」リンクはどのように変更できますか? 知らないうちにコードで行ったことはありますか? しかし、たとえ変更したとしても、メイン リンクが変更される理由がわかりません。パスの GUID はどこから取得しますか?

4

3 に答える 3

1

ルート コレクションには値が含まれているidtため、その値で URL がレンダリングされます。

空白の値を渡すことができます

@Html.ActionLink("Create invoice", "Create", "Invoices",new {idt=""})

これが問題の解決に役立つはずだと思います。

于 2012-07-23T15:39:58.753 に答える
1

これを試して:

@Html.ActionLink("Create invoice", "Create", "Invoices", new {idt = ""}, new {})

これで length=8 の問題は解決するはずです。

于 2012-07-23T16:33:38.670 に答える
0

このオーバーロードを試してください

@Html.ActionLink("Create invoice", "Create", "Invoices", null,null)
于 2012-07-23T16:37:18.133 に答える