Asp.net mvc ASP.NET MVC 2操作方法接收空参数

Asp.net mvc ASP.NET MVC 2操作方法接收空参数,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我正在开发的ASP.NET MVC应用程序有问题。我对web开发,尤其是MVC还是个新手,所以请原谅我这是一个非常愚蠢的新手错误;-) 我有一个显示产品列表的视图。每个产品都有一个“详细信息”链接,我想链接到该产品的详细信息视图。下面是视图中的相关标记: <% foreach (var item in Model) { %> <tr> <td> <%= Html.ActionLink("Edit", "Edit", new { i

我正在开发的ASP.NET MVC应用程序有问题。我对web开发,尤其是MVC还是个新手,所以请原谅我这是一个非常愚蠢的新手错误;-)

我有一个显示产品列表的视图。每个产品都有一个“详细信息”链接,我想链接到该产品的详细信息视图。下面是视图中的相关标记:

<% foreach (var item in Model) { %>
<tr>
    <td>
        <%= Html.ActionLink("Edit", "Edit", new { id=item.StockCode.ToString() }) %>
        <%= Html.ActionLink("Details", "Details", new { id=item.StockCode.ToString() })%>
    </td>
    <td>
        <%= Html.Encode(item.StockCode) %>
    </td>
    <td>
        <%= Html.Encode(item.Description) %>
    </td>
</tr>
但是。。。执行操作方法时,参数(stockCode)为null


有什么想法吗?

您需要接受的参数不应该是“stockCode”,而应该是“id”

MVC正在尝试将“id=item.StockCode.ToString()”模型绑定到名为相同的参数。你的行动方法应该是:

public ActionResult Details(string id)

您需要接受的参数不应为“stockCode”,而应为“id”

MVC正在尝试将“id=item.StockCode.ToString()”模型绑定到名为相同的参数。你的行动方法应该是:

public ActionResult Details(string id)

+1到DM的答案,但你还有另一个选择。您可以为您的案例注册特殊路线。大概是这样的:

routes.MapRoute("RawMaterial",  "RawMaterial/{action}/{stockCode}", 
    new { controller = "RawMaterial", action = "Index" } );

+1到DM的答案,但你还有另一个选择。您可以为您的案例注册特殊路线。大概是这样的:

routes.MapRoute("RawMaterial",  "RawMaterial/{action}/{stockCode}", 
    new { controller = "RawMaterial", action = "Index" } );