gpt4 book ai didi

c# - C# 中是否有用于 MVC Controller 的 nameof() 运算符?

转载 作者:IT王子 更新时间:2023-10-29 04:39:35 26 4
gpt4 key购买 nike

新推出的nameof运算符在使我的代码成为我的“类型”时很有用。

代替

return RedirectToAction("Edit");

我们可以写

return RedirectToAction(nameof(Edit));

但是获取 Controller 的名称并不是那么简单,因为我们有一个 Controller 后缀。只是想知道我是否想要一个

return RedirectToAction(nameof(Index), controllernameof(Home));

代替

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

我们如何实现 controllernameof 运算符?

最佳答案

也许像下面这样的扩展方法会满足您的需求:

public static class ControllerExtensions
{
public static string ControllerName(this Type controllerType)
{
Type baseType = typeof(Controller);
if (baseType.IsAssignableFrom(controllerType))
{
int lastControllerIndex = controllerType.Name.LastIndexOf("Controller");
if (lastControllerIndex > 0)
{
return controllerType.Name.Substring(0, lastControllerIndex);
}
}

return controllerType.Name;
}
}

你可以这样调用:

return RedirectToAction(nameof(Index), typeof(HomeController).ControllerName());

关于c# - C# 中是否有用于 MVC Controller 的 nameof() 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36625694/

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