C# 通过@Hml.ActionLink将两个参数传递给控制器,但第二个参数值始终为null

C# 通过@Hml.ActionLink将两个参数传递给控制器,但第二个参数值始终为null,c#,asp.net-mvc,C#,Asp.net Mvc,在ASP.Net MVC 5应用程序中,我使用@Hml.ActionLink帮助程序调用控制器上的操作,其中我需要传递两个参数。但是,第二个参数总是以空值结束 以下是带有ActionLink的视图代码: @Html.ActionLink( linkText: "Remove", actionName: "DeleteItemTest", controllerName: "Scales", routeValues: new { itemID

在ASP.Net MVC 5应用程序中,我使用@Hml.ActionLink帮助程序调用控制器上的操作,其中我需要传递两个参数。但是,第二个参数总是以空值结束

以下是带有ActionLink的视图代码:

@Html.ActionLink(
    linkText: "Remove",
    actionName: "DeleteItemTest",
    controllerName: "Scales",
    routeValues: new
    {
        itemID = 1,
        scaleID = 2
    },
    htmlAttributes: null
)
以下是控制器代码:

public ActionResult DeleteItemTest(int? itemID, int? scaleID)
{
   //...doing something here....
    return View();
}
这是最终出现在页面上的html:

<a href="/scales/deleteitemtest/?itemID=1&amp;scaleID=2">Remove</a>

我看到您正在使用属性路由和MapMVCatributeRoutes;你有这条路线的地图吗?如果不是,则默认路由将优先,并且仅将第一个参数作为ID

您需要添加一个需要两个参数的路由

类似这样的内容将被拍打到控制器操作上:

[Route("{itemID:int}/{scaleID:int}", Name = "DeleteItemTest")]
public ActionResult DeleteItemTest(int? itemID, int? scaleID)

请注意,这不是精确的代码,只是一些可以使用的代码。

我看到您使用的是属性路由和MapMVCatributeRoutes;你有这条路线的地图吗?如果不是,则默认路由将优先,并且仅将第一个参数作为ID

您需要添加一个需要两个参数的路由

类似这样的内容将被拍打到控制器操作上:

[Route("{itemID:int}/{scaleID:int}", Name = "DeleteItemTest")]
public ActionResult DeleteItemTest(int? itemID, int? scaleID)

请注意,这不是精确的代码,只是一些可以使用的代码。

我看到您使用的是属性路由和MapMVCatributeRoutes;你有这条路线的地图吗?如果不是,则默认路由将优先,并且仅将第一个参数作为ID

您需要添加一个需要两个参数的路由

类似这样的内容将被拍打到控制器操作上:

[Route("{itemID:int}/{scaleID:int}", Name = "DeleteItemTest")]
public ActionResult DeleteItemTest(int? itemID, int? scaleID)

请注意,这不是精确的代码,只是一些可以使用的代码。

我看到您使用的是属性路由和MapMVCatributeRoutes;你有这条路线的地图吗?如果不是,则默认路由将优先,并且仅将第一个参数作为ID

您需要添加一个需要两个参数的路由

类似这样的内容将被拍打到控制器操作上:

[Route("{itemID:int}/{scaleID:int}", Name = "DeleteItemTest")]
public ActionResult DeleteItemTest(int? itemID, int? scaleID)


请注意,这不是精确的代码,只是一些可以使用的东西。

@Html.ActionLink
返回的值如何使用?对我来说很好-生成
,对我来说也是如此。他的问题可能是什么?@haim770-我正在使用itemID和scaleID值从EntityFramework获取对象,然后对数据库中的条目执行一些删除操作。@Stephen Muecke/@Fabjan:在调试模式下,当我中断控制器方法时,我看到第一个参数的值(在本例中为“itemID”,但没有值(null))对于第二个参数。如果我切换它们,先放scaleID,然后是itemID,我会得到scaleID的值,但不是itemID的值。html看起来不错,所以我不知道发生了什么。从
@html.ActionLink
返回的值是如何使用的?对我来说很好-生成
,对我来说也是如此。他的问题是什么lem可能是?@haim770-我正在使用itemID和scaleID值从EntityFramework获取对象,然后执行数据库中条目的删除。@Stephen Muecke/@Fabjan:在调试模式下,当我中断控制器方法时,我看到第一个参数的值(在本例中为“itemID”,但没有值(null)对于第二个参数。如果我切换它们,先放scaleID,然后是itemID,我会得到scaleID的值,但不是itemID的值。html看起来不错,所以我不知道发生了什么。从
@html.ActionLink
返回的值是如何使用的?对我来说很好-生成
,对我来说也是如此。他的问题是什么lem可能是?@haim770-我正在使用itemID和scaleID值从EntityFramework获取对象,然后执行数据库中条目的删除。@Stephen Muecke/@Fabjan:在调试模式下,当我中断控制器方法时,我看到第一个参数的值(在本例中为“itemID”,但没有值(null)对于第二个参数。如果我切换它们,先放scaleID,然后是itemID,我会得到scaleID的值,但不是itemID的值。html看起来不错,所以我不知道发生了什么。从
@html.ActionLink
返回的值是如何使用的?对我来说很好-生成
,对我来说也是如此。他的问题是什么lem可能是?@haim770-我正在使用itemID和scaleID值从EntityFramework获取对象,然后执行数据库中条目的删除。@Stephen Muecke/@Fabjan:在调试模式下,当我中断控制器方法时,我看到第一个参数的值(在本例中为“itemID”,但没有值(null)对于第二个参数。如果我切换它们,首先放置scaleID,然后是itemID,我会得到scaleID的值,但不会得到itemID的值。html看起来不错,所以我不明白发生了什么。