我目前有这段代码。
public static class User
{
public static string GetUserName()
{
return Username;
}
}
我想在 View 中调用 @GetUserName()
,而不是 User.GetUserName();
是否可以在 View MVC 中调用类内部的方法而不引用类本身?
最佳答案
您可以使用using static
指令来做到这一点,尽管我个人比较关心可读性:
@using static User
...
<p>The user name is: @GetUserName()</p>
如果 User
在不同的命名空间中,您需要这样:
@using static WhateverNamespace.User
再说一遍,从可读性的角度来看,我会非常谨慎地使用它……但它应该可以正常工作。
您还可以添加扩展方法,尽管这不是那么简洁。例如,我的测试应用程序使用 Razor 页面,所以我有一个 IRazorPage
扩展方法:
namespace YourNamespace
{
public static class PageExtensions
{
public static string GetUserName(this IRazorPage view) => User.GetUserName();
}
}
由于查找扩展方法的方式,您需要:
<p>The user name is: @this.GetUserName()</p>
this.
有点难看,但至少你不需要记住类名。
关于c# - 如何在不引用类本身的情况下调用 View 中的类内部的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50285735/