Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
Asp.net mvc 为什么MVC路由中的字符串为空_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 为什么MVC路由中的字符串为空

Asp.net mvc 为什么MVC路由中的字符串为空,asp.net-mvc,Asp.net Mvc,我的RouteConfig中有以下内容: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapMvcAttributeRoutes(); routes.MapRoute( name: "Default",

我的RouteConfig中有以下内容:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapMvcAttributeRoutes();

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
在UsersController中执行以下操作:

public ActionResult Edit(string userId)
    {
        ManageUserViewModel model = new ManageUserViewModel();
        model.UserId = userId;

        return View(model);
    }
url是:address/Users/Edit/1c557388-3570-41ad-b7b3-dc53106a908a

这会加载视图ok,但每次字符串userId总是空的,我似乎无法找出原因,有人能帮忙吗?

而不是字符串userId,它应该是字符串id,如图所示:

public ActionResult Edit(string id)
{.....}
routes.MapRoute(
   name: "Default",
   url: "{controller}/{action}/{userId}",
   defaults: new { controller = "Home", action = "Index", userId = UrlParameter.Optional }
);
您的路由参数是id而不是userId

如果要将userId作为路由参数,请更改路由,如图所示:

public ActionResult Edit(string id)
{.....}
routes.MapRoute(
   name: "Default",
   url: "{controller}/{action}/{userId}",
   defaults: new { controller = "Home", action = "Index", userId = UrlParameter.Optional }
);
编辑:-

一个很好的布线教程是,可以作为

public ActionResult Edit(string id)
您使用的是路由id而不是用户id。如果需要userId,请将其更改为userId


有关更多详细信息,请

谢谢,我不知道这是字面意思