使用Razor定义类的别名

时间:2012-01-21 17:47:12

标签: c# asp.net-mvc asp.net-mvc-3 razor

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

using MyAlias = Some.Long.Namespace.Class;

我在剃刀视图中尝试了同样的方法,这是一种天真的方法,如

@using MyAlias = Some.Long.Namespace.Class

不起作用。有没有办法达到同样的效果?

2 个答案:

答案 0 :(得分:11)

你为什么要那样做?无论你需要什么原因,都可能有更好的方法。你应该避免在Razor视图中编写C#代码,所以你不应该需要它。 Razor视图中所需的只是视图模型的命名空间,因为这是视图应该操作的所有内容。

@model MyViewModel
...

将别名和C#代码保留在它们所属的位置 - 控制器,模型,帮助程序......

所有这些都说,别名应该有效。例如,以下视图对我来说非常好:

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

答案 1 :(得分:0)

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

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