Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# URL未将参数传递给方法_C#_Html_Asp.net Mvc_Razor_Asp.net Mvc Routing - Fatal编程技术网

C# URL未将参数传递给方法

C# URL未将参数传递给方法,c#,html,asp.net-mvc,razor,asp.net-mvc-routing,C#,Html,Asp.net Mvc,Razor,Asp.net Mvc Routing,这是我的路线图: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Edit", url: "{sub_num}/Edit", defaults: new { controller = "Projects", ac

这是我的路线图:

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?子编号
。当我尝试转到
http://localhost:64692/30000032739/Edit
,该方法返回400个错误请求,这是null sub_num参数的结果。我设置了一个断点来检查这一点,当调用该方法时,sub_num确实为null。这可能是什么原因造成的?

显然,30000032739大于
Int32。因此,模型绑定器无法将其绑定到
int?sub_num
参数

如果您真的希望看到这样的数值,最好选择
long?
。如果您传递的只是任意数字序列,那么显然要使用
string


请参见
30000032739>int.MaxValue==true
以回显haim770,尝试切换到
long?
而不是
int?
,或者如果此值在数字上没有任何意义,只需使用
字符串
@haim770您是对的。我只是暂时把它做成一根绳子,效果很好。想回答这个问题,我会接受答案吗?谢谢