Asp.net mvc 带参数的Mvc路由 routes.MapRoute( “路由示例”, “controller/Action/{sampleId}”, 新建{controller=“controller”,action=“action”,sampleId=urlparmeter.Optional} ); ActionResult操作(变量sampleId) { //在这里,我总是将sampleId设置为null。我没有得到任何值 //我总是只通过RoutedData获取值。值[“Id”]…另一个疑问是我有参数名是sampleId。但我只能通过在RoutedData值中提及“Id”来获取数据。为什么会这样? }

Asp.net mvc 带参数的Mvc路由 routes.MapRoute( “路由示例”, “controller/Action/{sampleId}”, 新建{controller=“controller”,action=“action”,sampleId=urlparmeter.Optional} ); ActionResult操作(变量sampleId) { //在这里,我总是将sampleId设置为null。我没有得到任何值 //我总是只通过RoutedData获取值。值[“Id”]…另一个疑问是我有参数名是sampleId。但我只能通过在RoutedData值中提及“Id”来获取数据。为什么会这样? },asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我总是只通过RouteData获取值。。另一个疑问是我的参数名是sampleId。但我只能通过在RoutedData值中提及“Id”来获取数据。。为什么会这样?我认为您的路由。MapRoute的属性是错误的。 试试这个 routes.MapRoute( "RouteSample", "Controler/Action/{sampleId}", new { controller = "Controlle

我总是只通过RouteData获取值。。另一个疑问是我的参数名是sampleId。但我只能通过在RoutedData值中提及“Id”来获取数据。。为什么会这样?

我认为您的
路由。MapRoute
的属性是错误的。 试试这个

 routes.MapRoute(
                 "RouteSample",
               "Controler/Action/{sampleId}",
               new { controller = "Controller", action = "Action", sampleId=     UrlParameter.Optional }
);

<a href="@Url.RouteUrl("RouteSample", new { sampleId= 5 })> sample </a>


ActionResult Action(var sampleId)
{
         // Here I always get sampleId as null. I didn't get any value
         // I always get value only by RouteData.Values["Id"].. and another doubt is I have parameter name is sampleId. But I can get data only by mentioning "Id" in RouteData values.. why is like that ?
}

我认为您的
路由。MapRoute
的属性是错误的。 试试这个

 routes.MapRoute(
                 "RouteSample",
               "Controler/Action/{sampleId}",
               new { controller = "Controller", action = "Action", sampleId=     UrlParameter.Optional }
);

<a href="@Url.RouteUrl("RouteSample", new { sampleId= 5 })> sample </a>


ActionResult Action(var sampleId)
{
         // Here I always get sampleId as null. I didn't get any value
         // I always get value only by RouteData.Values["Id"].. and another doubt is I have parameter name is sampleId. But I can get data only by mentioning "Id" in RouteData values.. why is like that ?
}

只有传递的参数类型应该是相同的名称(永远不会固定),这取决于用户。:)
@URL.RouteUrl(“RouteSample”,new{sampleId=5}
在客户端上生成了什么URL?如何将sampleId声明为var?是否定义了其他路由?看起来正在拾取另一个路由。只有传递的参数类型应该是相同的名称,这永远不会固定,取决于用户。:)什么URL是
@URL.RouteUrl(“RouteSample”,new{sampleId=5}
在客户端上生成?如何将sampleId声明为var?是否定义了其他路由?看起来正在拾取另一个路由。否。仅通过路由名称我正在调用该操作。操作正常。但对我来说,sampleId only不能通过。它始终为null。我只能通过RoutedData获取数据。值[“Id”]我认为@SanketS指的是控制器和操作应该位于{controller}这样的括号之间的事实.但我认为这是您在示例代码中遗漏的内容..不。仅通过路由名称我正在调用操作。它运行正常。但对我来说,sampleId only不能通过。它始终为空。我只能通过RoutedData获取数据。值[“Id”]我认为@SanketS指的是控制器和操作应该位于括号之间的事实,如{controller}。但我认为这是您刚才在示例代码中遗漏的内容。。