2012-01-21 17 views
6

En un código C# normal, puedo usar una instrucción using para definir un alias para un nombre de clase, p.Definir un alias para una clase con Razor

using MyAlias = Some.Long.Namespace.Class; 

me han tratado el mismo en una vista de la maquinilla de afeitar, un enfoque ingenuo como

@using MyAlias = Some.Long.Namespace.Class 

no funciona. ¿Hay alguna forma de lograr el mismo efecto?

Respuesta

11

¿Por qué querrías hacer eso? Cualquiera que sea la razón por la que necesita esto, probablemente haya una mejor manera. Debe evitar escribir código C# en una vista Razor de todos modos, por lo que no debería necesitarlo. Todo lo que necesita en una vista Razor es el espacio de nombre para su modelo de vista porque eso es todo lo que una vista debe manipular.

@model MyViewModel 
... 

Leave los alias y C# código a donde pertenecen - controladores, modelos, ayudantes, ...

Dicho todo esto, los alias deben trabajar. Por ejemplo, la siguiente vista funciona perfectamente bien para mí:

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

¿Qué tal si quieres referirte a tu modelo en tu vista usando "MyViewModel" en lugar de "Modelo"? es decir MyViewModel.MyProperty en lugar de Model.MyProperty – andrew

Cuestiones relacionadas