Estoy ampliando un poco mi this question.Cómo hacer la localización de los contenidos procedentes de @ Html.LabelFor() en mvc3
Tengo mi App_LocalResources en mi aplicación web MVC (no la tengo en dll por separado).
Tengo un Modelo en otro ensamblaje. En el modelo que tengo 2 clases Country
y City
:
public class Country: MyContainer
{
public City city {get;set;}
}
public class City
{
public CityName {get;set;}
}
public class MyContainer
{
public Cid {get;set;}
}
Así que en mi método de acción que crear y pasar un objeto de mi país como modelo de vista.
Y en la vista que utilizan este:
@Html.LabelFor(mdl=>mdl.City.CityName)
@Html.LabelFor(mdl=>mdl.Cid)
Así que esto funciona bien y la etiqueta con el texto se prestan en Inglés.
¿Pero cómo modifico esto para que lea el texto de mis archivos de recursos en mi aplicación web?
Gracias Darin por su respuesta, obtuve ese fragmento de código. Pero el problema ahora es que mis clases Country, City y MyContainer están en un proyecto diferente (se llama Location.Model). Y mi archivo de recursos está en mi proyecto de aplicación web mvc3. El Location.Model me parece que es código autogenerado, porque en los archivos cs hay comentarios " // Este código fue generado a partir de una plantilla." Auto-generated> y también tiene algún archivo .tt en eso. Así que ayúdame a descubrir dónde y cómo hago los cambios. ¿Debo separar mi proyecto de Recursos ... por favor ayuda ... –
thinkmmk
@thinkmmk, no debes pasar el uso de modelos autogenerados a tus vistas. Supongo que es un modelo de dominio autogenerado EF. Siempre debe definir modelos de vista que son clases diseñadas específicamente para una vista determinada. –
Entiendo tu punto, pero este proyecto parece ser bastante complejo y vasto. Entonces, ¿cómo debo avanzar para hacer cambios mínimos? ¿Necesito crear un nuevo objeto de una nueva clase y pasar eso como modelo? Pero la cosa es que esto creará una clase duplicada. – thinkmmk