2016-09-24 54 views
1

的特殊含义,正如你知道的,当我们想去中的项目是由什么是ID的MVC

@Html.ActionLink("Details", "Details", new { id=item.Id }) 

http://localhost:xxxx/Item/Details/1

我们应该称之为“1”参数来实现?它不是查询字符串参数,但它是什么? mvc是否将此参数解释为查询字符串参数?

而另一件事是,当我设置链接如下:

@Html.ActionLink("Edit", "Edit", new { itemIdNo=item.Id }) 

MVC创建此链接为:

http://localhost:xxxx/Item/Details?itemIdNo=1

正如你看到的,他们有很大的不同。 “id”参数在MVC中有特殊含义吗?

我们应该称之为“1”参数?它不是查询字符串参数,但它是什么?

是否mvc将此参数解释为查询字符串参数?

+4

查看路线表 – Satpal

+2

这不是特别的。这完全取决于你设定的路线 –

回答

4

在你RouteConfig.cs,它调整为"id"

routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 

如果你想改变它,你可以改变{id}参数作为{itemIdNo}id参数“默认值:”行为itemIdNo

2

这是一个url路径参数。名称标识用于与控制器操作上的参数相同的名称进行匹配。你可以使用任何你的名字,就像你在第二个例子中那样。 您可以在路线动作中指定id值应来自哪里,身体,网址等