gpt4 book ai didi

c# - 如何避免在调用时使用硬编码字符串文字,例如,RedirectToAction?

转载 作者:行者123 更新时间:2023-11-30 23:13:20 29 4
gpt4 key购买 nike

当调用 Html.DisplayNameFor 时,我们只提供一个 lambda 表达式来呈现,例如,通过 item => Model.Name 呈现学生姓名。由于编译时检查,这种方法非常好。

如何使 RedirectToAction 也成为可能,例如 RedirectToAction(controller => Controllers.Student.Index) 而不是 RedirectToAction("Index ")?假设名为 Controllers 的属性包含项目中使用的所有 Controller 。

最佳答案

你可以。

作为变体 - 从 ControllerBase 创建 CoolControllerBase 继承者并添加 Controllers 属性。所有 Controller 都应该继承 CoolControllerBase。在静态构造函数中使用反射填充 Controllers 属性:GetAssembly、GetClasses 继承了 CoolControlelrBase、每个类的 GetMethods。

其他变体 - 使用 Roslyn 实现相同。

第三种变体:使用 nameof。

RedirectToAction(nameof(Student), nameof(Student.Index)) 

但是你的目标是什么?你想要自动完成吗?

关于c# - 如何避免在调用时使用硬编码字符串文字,例如,RedirectToAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43673584/

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