在我的DOT NET CORE MVC应用程序中,我在视图内使用Url Action
来生成和重定向操作链接
@Url.Action ("Action Name","Controller Name")
上面的synatax对我来说很好,在我传递像
这样的控制器的静态值的情况下
'@Url.Action(nameof(EmployeeController.Edit),"Employee")'
这里的控制器名称是静态的,如果当时我更改控制器名称,我想避免将来出现类似情况,我需要记住视图中的更改,因此我的要求基本上是我想传递如下所示的控制器名称
'@Url.Action(nameof(EmployeeController.Edit),nameof(EmployeeController))'
控制器和操作方法为
public class EmployeeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult Edit()
{
return RedirectToAction("Index", "HotelList", new { area = "Hotel" });
}
}
建议我这样做的最佳方法
预先感谢
答案 0 :(得分:1)
按约定,控制器类以单词Controller
结尾,但出于URL的目的引用它们却没有。 (老实说,直到现在我才从未出现过这种差异。)最好不要破坏该约定,因为它可能会引发其他问题。相反,也许只需修改结果中使用的字符串即可。
类似这样的东西:
nameof(EmployeeController).Replace("Controller", string.Empty)
如果经常使用它,也许为了简单起见,将其封装到一个辅助方法或扩展方法中。