0

コントローラーアクションが呼び出されたときに、次のコードのパラメーターが常に null になる理由を誰か教えてください:

<% foreach (var row in Model) { %>
     <tr>
        <td><%=Html.ActionLink("Edit", "Edit", "Customer", new { controller = "Customer", action = "Edit", id = row.CustomerID })%>|
            <%= Html.ActionLink("Sales", "List", "Sale", new { controller = "Sale", action = "List", id = row.CustomerID }, null)%></td>
        <td><%= Html.Encode(row.CustomerID)%> </td>
        <td><%= Html.Encode(row.FirstName)%> </td>
        <td><%= Html.Encode(row.LastName)%> </td>
        <td><%= Html.Encode(String.Format("{0:g}", row.DateOfBirth))%></td>
        <td><%= Html.Encode(row.Address)%> </td>
        <td><%= Html.Encode(row.Phone)%> </td>
    </tr>



<% } %> 

コントローラーコード:

public class SaleController : Controller
{

    public ActionResult List(int CustomerID)
    {
        SaleListModel SaleList = SaleServices.GetList(CustomerID);
        return View(SaleList);
    }

}
4

3 に答える 3

2

アクション パラメーターは、位置や型ではなく、名前によってバインドされます。したがって、への呼び出しでに変更idする必要があります。CustomerIDHtml.ActionLink

    <td><%=Html.ActionLink("Edit", "Edit", "Customer", new { controller = "Customer", action = "Edit", CustomerID = row.CustomerID })%>|
        <%= Html.ActionLink("Sales", "List", "Sale", new { controller = "Sale", action = "List", CustomerID = row.CustomerID }, null)%></td>
于 2013-07-17T16:55:48.460 に答える
1

代わりに以下を使用してください。不要なパラメーター (コントローラー/アクション) を指定しています。

<%= Html.ActionLink("Edit", "Edit", "Customer", new { id = row.CustomerID })%>|
<%= Html.ActionLink("Sales", "List", "Sale", new { id = row.CustomerID })%>
于 2013-07-17T16:43:02.613 に答える
1

という名前のパラメーターを送信してidいますが、コントローラー アクションは という名前のパラメーターを探していますCustomerID。これらは一致する必要があります。

于 2013-07-17T16:55:26.977 に答える