gpt4 book ai didi

asp.net-mvc - MVC Controller GET 操作是否应该使用参数

转载 作者:行者123 更新时间:2023-12-04 06:36:10 25 4
gpt4 key购买 nike

我正在考虑简化我的 MVC Controller 操作。

关于是否所有 GET 操作都应使用 RouteData.Values 而不是获取参数获取其值的任何想法?

最佳答案

如果您正确设置路由,则不需要使用 RoutaData.Values,默认模型绑定(bind)器会为您执行此操作。看看 global.asax 的默认路由:

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

因此,您可以创建如下操作:
 public ActionResult SomeAction(int id) {
// in case of url '/MyController/SomeAction/1' id == 1
}

你根本不需要使用 RoutaData.Values,你只需要正确设置你的路线。你到底为什么要使用这样的东西:(?!)
 public ActionResult SomeAction() {
int id;
if(int.TryParse(RoutaData.Values["id"] + "", out id))
{
// ...
}
}

反对这种“模式”的其他论据:
  • 复杂的单元测试
    Controller 类/ Action
  • 规避模型绑定(bind)阶段
    (Ryan 指出)
  • 绕过模型验证阶段
  • 关于asp.net-mvc - MVC Controller GET 操作是否应该使用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4856493/

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