URL 没有将参数传递给方法
URL not passing argument to method
这是我的路由配置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Edit",
url: "{sub_num}/Edit",
defaults: new { controller = "Projects", action = "Create" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Projects", action = "Clear", id = UrlParameter.Optional }
);
}
我的 ProjectsController 中的 Create 方法有一个参数,int? sub_num
。当我尝试转到 http://localhost:64692/30000032739/Edit
时,方法 returns 出现 400 错误请求,这是空 sub_num 参数的结果。我已经设置了一个断点来检查它,并且 sub_num 在调用该方法时确实为空。可能是什么原因造成的?
显然,30000032739 大于 Int32.MaxValue
,因此模型绑定器无法将其绑定到您的 int? sub_num
参数。
如果您确实需要这样的数值,最好选择 long?
。如果它只是您传递的任意数字序列,显然使用 string
。
这是我的路由配置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Edit",
url: "{sub_num}/Edit",
defaults: new { controller = "Projects", action = "Create" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Projects", action = "Clear", id = UrlParameter.Optional }
);
}
我的 ProjectsController 中的 Create 方法有一个参数,int? sub_num
。当我尝试转到 http://localhost:64692/30000032739/Edit
时,方法 returns 出现 400 错误请求,这是空 sub_num 参数的结果。我已经设置了一个断点来检查它,并且 sub_num 在调用该方法时确实为空。可能是什么原因造成的?
显然,30000032739 大于 Int32.MaxValue
,因此模型绑定器无法将其绑定到您的 int? sub_num
参数。
如果您确实需要这样的数值,最好选择 long?
。如果它只是您传递的任意数字序列,显然使用 string
。