gpt4 book ai didi

c# - MVC Action 名称作为常量字符串?

转载 作者:行者123 更新时间:2023-11-30 20:51:08 24 4
gpt4 key购买 nike

我创建了以下代码来尝试摆脱与 MVC 操作名称相关的任何魔术字符串。开发人员可能会更改访问修改器并在页面中访问它。

private const string IndexAction = "Index";
public ActionResult Index(){
//do stuff
}
public ActionResult Other(){
// do stuff
if(foo)
return RedirectToAction(IndexAction);
//don't foo
}

我从来没有在任何地方见过这让我觉得这不是一个好主意,在编程世界中我怀疑我是第一个尝试这个的人。 问题: 将操作的名称放入不良做法是否会破坏 MVC 的任何原则。

最佳答案

基本上使用常量是个好主意(尽管根据我的经验,这在 MVC 中并不常见 - 如果您的 Controller 很小,也可能不需要)。按照您建议的方式,您可以将必须​​更改的点数从可能的几个减少到两个。

如果你想将它减少到一个点,你也可以使用 ActionName -attribute 也可以使用常量来分配 Action 的名称。这打破了 MVC 中使用的约定,因此其他人可能需要更长的时间来理解该系统,但具有将更改限制在一个位置的优势:

private const string IndexAction = "Index";

[ActionName(IndexAction)]
public ActionResult Index(){
//do stuff
}
public ActionResult Other(){
// do stuff
if(foo)
return RedirectToAction(IndexAction);
//don't foo
}

有关 ActionName 属性及其用途的详细信息,请参阅 question及其答案。

关于c# - MVC Action 名称作为常量字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22010562/

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