gpt4 book ai didi

asp.net-mvc - MVC [HttpGet] Controller 注释可选吗?

转载 作者:行者123 更新时间:2023-12-02 11:30:49 24 4
gpt4 key购买 nike

如果我有 2 个 Controller 操作:

    [HttpGet]
public ActionResult Login()
{
//...

return View();
}

    [HttpPost]
public ActionResult Login(FormCollection values)
{
//...

return RedirectToAction("Index","Home");
}

似乎需要 Post 装饰才能使其工作(这是有道理的),但 HttpGet 装饰完全是可选的。无论有没有,它都可以正常工作。除非另有说明,MVC 似乎默认 Controller 操作为 HttpGet。

我必须决定是否希望我的代码的 future 读者必须自己弄清楚这一点,或者我是否必须记住在各处添加 HttpGet 以保持一致性。但我的问题不是包含显式装饰是否是一个好的做法,即使它已经默认为这种方式。

我的问题是:我是否总是不需要用 HttpGet 装饰 Controller 方法?如果我明确指定或不明确指定,是否有某种方式可以咬我?我对此进行了搜索,但我能找到的只是描述为什么您可能想要使用这两种注释的帖子,而不是专门包含/反对包含 HttpGet 的原因。

最佳答案

您不必明确指定这一点,不。但请注意:

  • 不指定操作的动词将意味着该方法同时接受 GET 和 POST。但是,如果有两个操作,则标记为 POST 的一个将用于 POST,另一个将默认用于 GET。
  • 应用 HttpGet 将意味着操作仅接受 GET 请求。
  • 将操作标记为 GET 可以让其他开发者更清楚地了解您的意图。

Is there some way that this can bite me if I do or do not explicitly specify?

不太可能。我可以想象一种情况,某些东西可能会表现出一些奇怪的行为或因此无法按预期工作,但这种情况很少见。

关于asp.net-mvc - MVC [HttpGet] Controller 注释可选吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22443290/

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