3

MVC 4 の Html.Action に関する質問があります。いくつかのクエリ文字列変数を詳細ビューに渡したいです。

私が今持っているコードは

System.Text.StringBuilder MobileData = new System.Text.StringBuilder();

MobileData.AppendFormat("<a style=\"text-align:left;\" data-role=\"button\"     onclick=\"window.location='" + @Url.Action("Taken_Detail", new { id = tk.ID }) + "';\" data-  ajax=\"true\" data-icon=\"alert\"><span class=\"AgenItems\">{1:dd-MM-yyyy}</span>", tk.ID, tk.Datum);

問題は、彼が私を localhost/PROJECTNAME/Home/Taken_Detail/2 にリダイレクトすることです。私が欲しいのは Home/Taken_Detail?id=2 です。ここで何が欠けているのか 私は MVC 4 を学び始めたばかりです。あらゆるヒントを歓迎します。

4

1 に答える 1

5

これは、ルートにidパラメーターが含まれているためです。ルートから削除するとUrl.Action、URL が変更され、パラメーターがクエリ文字列に追加されます。

例:

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

で指定すると、idパラメータは最後のスラッシュの後に置かれますUrl.Action

削除する場合:

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

結果の URL には、id.

于 2013-05-21T09:35:28.197 に答える