gpt4 book ai didi

asp.net-mvc - 为什么在 "new"中使用 "ActionLink"作为 Route Values ---- 例如

转载 作者:行者123 更新时间:2023-12-04 20:03:20 24 4
gpt4 key购买 nike

下面有两个例子:

     @Html.ActionLink("Create New", "Create", new { id = Model.Id })

和,

     return RedirectToAction("Index", new { id = review.RestaurantId });

我的问题是关于对象路由值中新的 { id = xxx} 部分。为什么我们在这种情况下使用"new"?它到底是做什么的?在这种情况下它是否初始化“id”变量?

此外,奇怪的是,这些方法、创建和索引定义只能采用路由值中定义的参数...

也就是说,

     public ActionResult create { int id)
{ ...}

是正确的,但下面是错误的......

     public ActionResult create { int somethingelse)
{ ...}

所以请告诉我前两个示例中的新 {id = xx} 是做什么的?

谢谢

最佳答案

new {} 创建一个 Object 类型的新对象。类型是匿名的。在编写以“select new {x = "foo".y="bar"}”结尾的 linq 查询时,您会看到该语法。在将对象设置为类型“var”时经常使用它。

您在 ActionLink 中所做的是提供路由值。 MVC 获取对象中的属性和值,并将它们放入请求的 QueryString 中。这就是您所说的“魔法”。您可以在 Controller Action 中设置断点并检查“HttpContext.Request.QueryString”以查看它。

Action 方法的输入值必须与通过 QueryString 传入的属性相匹配。

关于asp.net-mvc - 为什么在 "new"中使用 "ActionLink"作为 Route Values ---- 例如,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22644585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com