在调用Html.DisplayNameFor
时,我们只提供一个lambda表达式来呈现,例如,通过item => Model.Name
呈现学生姓名。
由于编译时检查,这种方法非常好。
如何使RedirectToAction
成为可能,例如RedirectToAction(controller => Controllers.Student.Index)
而不是RedirectToAction("Index")
?假设名为Controllers
的属性包含项目中使用的所有控制器。
答案 0 :(得分:2)
你可以。
作为变体 - 从ControllerBase创建CoolControllerBase继承者并添加Controllers属性。所有控制器都应该继承CoolControllerBase。使用静态构造函数中的反射填充Controllers属性:GetAssembly,GetClasses为每个类继承CoolControlelrBase,GetMethods。
其他变体 - 与Roslyn实现相同。
第三种变体:使用nameof。
RedirectToAction(nameof(Student), nameof(Student.Index))
但你的目标是什么?你想要自动完成吗?