次のようなアクションがあります。
public ActionResult UserDetails(string id)
{
}
context.MapRoute(
"Admin_Default",
"{controller}/{action}/{id}",
new { action = "Index", controller = "Start", id = UrlParameter.Optional }
);
別のビューには、.net の標準メンバーシップ管理からのユーザーのリストがあります。ユーザー名をクリックして詳細を表示すると、ユーザー名が 1 つの単語である場合にのみ機能します。最近、次のようなユーザー名に遭遇しました。
スティーブン CH アンダーソン
だから私はこれを使ってリンクを作成します:
@Html.ActionLink(Model.UserName, "UserDetails", new { controller = "Security", id = HttpUtility.UrlEncode(Model.UserName) })
しかし、それをクリックすると、次のように表示されます: HTTP エラー 404.11 - 見つかりません
1 つの単語である通常のユーザー名をクリックすると、魅力的に機能します。
ルート構成がこのリクエストを理解していないと思いますが、問題はそれを機能させる方法ですか?
アップデート
リンク:
<a href="/Security/UserDetails/Steven%2bC.H.%2bAndersson">Steven C.H. Andersson</a>