【问题标题】:MVC actionlink parameter never sendingMVC actionlink 参数从不发送
【发布时间】:2013-07-16 08:12:26
【问题描述】:

谁能告诉我为什么在调用控制器动作时我在以下代码中的参数总是为空:

<% 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);
    }

}

【问题讨论】:

  • 两个操作链接都将参数发送为空

标签: asp.net-mvc actionlink html.actionlink


【解决方案1】:

动作参数是按名称绑定的,而不是按位置或类型。因此,您应该在对Html.ActionLink 的调用中将id 更改为CustomerID

    <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>

【讨论】:

    【解决方案2】:

    您正在发送一个名为 id 的参数,但您的控制器操作正在寻找一个名为 CustomerID 的参数。这些需要匹配。

    【讨论】:

    • 谢谢,成功了。从您第一次开始就将您的答案标记为正确。
    【解决方案3】:

    请改用以下内容。您正在指定不必要的参数(控制器/操作)。

    <%= Html.ActionLink("Edit", "Edit", "Customer", new { id = row.CustomerID })%>|
    <%= Html.ActionLink("Sales", "List", "Sale", new { id = row.CustomerID })%>
    

    【讨论】:

    • 由于某些原因,您的代码编辑客户链接仍然为参数发送 null,销售列表链接为参数发送 null,但链接到客户控制器而不是销售控制器中的列表操作
    • 刚刚看到您的编辑,您错误地命名了参数 - 但看起来其他人在我之前得到了它。哦,好吧,惊险之前的账单......
    猜你喜欢
    • 2014-09-09
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多