具有可空参数的MVC Action Method

时间:2013-03-23 05:25:53

标签: asp.net asp.net-mvc asp.net-mvc-3 razor routing

我正在使用参数值调用一个动作。但它没有为动作方法参数赋值参数。

    public ActionResult UserDetail(long? userId)
    {

    }
  

localhost / Admin / UserDetail / 10 - > 10未传递给userId

但是

  

localhost / Admin / UserDetail /?userId = 10 - >这工作

是什么导致第一个网址无效?有什么帮助吗?

更新

在global.asax中尝试过这个仍无法正常工作

 routes.MapRoute("ExistSiteUser",
              "UserDetail/{userId}",
               new
               {
                   controller = "Admin",
                   action = "UserDetail",
                   // nothing optional 
               }
         );
        routes.MapRoute("NewSiteUser",
             "UserDetail",
              new
              {
                  controller = "Admin",
                  action = "UserDetail",
                  userId = UrlParameter.Optional 
              }
        );

2 个答案:

答案 0 :(得分:3)

将参数名称更改为“id”而不是“userid”,然后尝试....它应该可以正常工作

public ActionResult UserDetail(long? id)
{

}

答案 1 :(得分:3)

将此userID替换为id: -

public ActionResult UserDetail(long? id)
    {

    }