代码之家  ›  专栏  ›  技术社区  ›  Roee Adler

ASP.NET MVC:无法在我的控制器中获取字符串参数

  •  19
  • Roee Adler  · 技术社区  · 16 年前

    我的控制器中有以下代码 UserController :

    public ActionResult Details(string name)
    {
        MyModelDataContext db = new MyModelDataContext();
        Product user = db.Products.Single(t => t.Name == name);
        return View(user);
    }
    

    我希望当我直接浏览到 http://localhost:port/User/Details/SomeName ,我将使用“ name 包含“somename”的“参数”。我确实了解这个功能,但是” 名称 “为空。我没有更改项目的任何默认设置。

    我做错什么了?

    谢谢

    2 回复  |  直到 16 年前
        1
  •  22
  •   user151323    16 年前

    如果您没有在global.asax.cs中更改路由定义,那么我想它仍然使用默认的“id”名称作为参数。或者将其更改为“name”,或者将操作参数重命名为“id”。

        2
  •  4
  •   Alan Christensen    16 年前

    您是否在global.asax中定义了包含“name”参数的路由?

    routes.MapRoute(  
    "Default",                                       // Route name  
    "{controller}/{action}/{name}",                    // URL w/ params  
    new { controller="Home", action="Index",name="" }  // Param defaults  
    );  
    

    请参见Nerddinner教程中的示例: http://nerddinnerbook.s3.amazonaws.com/Part4.htm