2011-01-18 14 views
1

私はPayeesのグリッドを構築しています...いくつかの列を持つ単純なグリッド。私の見解は、以下を有する:ActionLinkから値を返すASP.Net MVC

<table width="600" cellspacing="3" cellpadding="0" border="0"> 

受取人の名前 使用さ 将来の支払いが

<%のforeachの(Model.PayeeListeItemsでのvar P) {%> 号トランザクションを設定します<%= Html.ActionLink( "Modify"、 "Modify"、p.PayeeId)%> <%= p.Na私は%> <% = p.IsUsed.ToString()%> <% = p.IsAssignedToBill.ToString()%> <% = p.TransactionCount.ToString()%>

<% }%>

私はこれと戦います。コントローラーにModifyメソッドがありますが、選択した受取人が受けようとしているPayeeIdを取得する方法がわかりません。

実行時にリンクをクリックすると、

パラメータ辞書には、メソッド 'System.Web.Mvc.ActionResult Modify(Int32)'のnullableでない型 'System.Int32'のパラメータ 'id'のnullエントリが含まれます。オプションのパラメータは参照型である必要があります。 nullの型、またはオプションのパラメータとして宣言することができます。 パラメータ名:パラメータ

私のコントローラメソッドは次のようになります。

 public ActionResult Modify(Int32 id) 
    { 
     PayeeDto p = Services.PayeeServices.GetPayeeById(id); 
     SinglePayeeItem spi = new SinglePayeeItem 
            { 
             Deleted = p.Deleted, 
             Name = p.Name, 
             PayeeId = p.PayeeId 
            }; 
     return View(spi); 
    } 

答えて

3

あなたは右、RouteValuesパラメータとしてp.payeeIdを使用していますか?それをオブジェクトとして渡す必要があります。したがって、あなたのActionLinkは次のようになります:

<%=Html.ActionLink("Modify", "Modify", new { id = p.PayeeId }) 
関連する問題