使用Razor为类定义别名

本文关键字:定义 别名 Razor 使用 | 更新日期: 2023-09-27 18:20:55

在一个普通的C#代码中,我可以使用using语句来定义类名的别名,例如

using MyAlias = Some.Long.Namespace.Class;

我在剃刀般的视角下也尝试过同样的方法,一种像一样天真的方法

@using MyAlias = Some.Long.Namespace.Class

不起作用。有什么方法可以达到同样的效果吗?

使用Razor为类定义别名

为什么要这样做?不管你为什么需要这个,可能还有更好的方法。无论如何,你应该避免在Razor视图中编写C#代码,所以你不应该需要它。在Razoor视图中,你只需要视图模型的命名空间,因为这就是视图应该处理的全部内容。

@model MyViewModel
...

将别名和C#代码保留在它们所属的位置——控制器、模型、助手。。。

话虽如此,但别名应该有效。例如,以下视图对我来说运行得很好:

@using foo = System.IO;
<div>
    @foo.Path.GetFileName(@"c:'work'foo.txt")
</div>

Razor不支持它,但C#支持它。我同意你的看法,那将是有用的。跟踪此请求的问题在这里:

https://github.com/dotnet/aspnetcore/issues/13090