我的控制器中有以下名为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
时,我会使用包含"SomeName“的"name
”参数来访问这个函数。我确实得到了这个函数,但是"name
“是空的。我没有更改项目的任何默认设置。
我做错了什么?
谢谢
发布于 2009-08-13 13:20:42
如果您还没有更改Global.asax.cs中的路由定义,那么我想它仍然使用参数的默认"id“名称。将其更改为"name“或将操作参数重命名为"id”。
发布于 2009-08-13 13:22:55
您是否在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
https://stackoverflow.com/questions/1271859
复制相似问题