2011-01-09 6 views
0

私はMVC Music Storeアプリケーションを完成しましたが、現在は練習のために自分で修正しています。私の仕事でも同様の作業をする準備をしています。MVC 2のHtml.ActionLinkに文字列を渡す

私が行ったことは、現在のユーザーリストを表示するビューを作成することです。私は、ユーザーのパスワードを忘れた場合に変更できるようにしたいと考えています。ここに私のビューから抜粋されています、それは私が上で行ったようにActionLinkの経由のユーザー名を渡すこと

<% foreach (MembershipUser user in Model) { %> 

<tr> 
    <td><%: Html.ActionLink(user.UserName, "changeUserPassword", 
     "StoreManager", new { username = user.UserName }) %></td> 
    <td><%: user.LastActivityDate %></td> 
    <td><%: user.IsLockedOut %></td> 
</tr> 

<% }%> 

私が知りたいのは何ですか。私はそれを正しく行っている場合しかし、私はわからないよ、global.asax.csファイルに次のルートを登録している:ここで

routes.MapRoute(
    "AdminPassword", //Route name 
    "{controller}/{action}/{username}", //URL with parameters 
    new { 
     controller = "StoreManager", 
     action = "changeUserPassword", 
     username = UrlParameter.Optional 
    }); 

は私のGETアクションです:

public ActionResult changeUserPassword(string username) 
{ 
    ViewData["username"] = username; 

    return View(); 
} 

私が通過デバッグしていますそのViewData ["username"] = usernameが見つからないように、コードを作成してください。そうしないと、私は正しくルートを登録していないか、または私のようにアクションリンクを使ってユーザー名を渡すことができません。

誰かが私を正しい方向に向けることができたら、感謝します。

答えて

2

あなたは間違っているメソッドのシグネチャを使用しているように見える、私はあなたが

Html.ActionLink(user.UserName, "changeUserPassword", 
    new { controller = "StoreManager", username = user.UserName }); 

それとも、

Html.RouteLink(user.UserName, "AdminPassword", 
    new { username = user.UserName }); 
を行うことができますをしたい this one

を使用していると思います

関連する問題