Bueno, digamos que tiene alguna carpeta de vista llamada Lista, y una llamada Detalles - y que muestra el Modelo en las dos debería ser diferente.
Puede crear una carpeta DisplayTemplates dentro de cada una de las dos carpetas y crear un control parcial con mismo nombre como su modelo y también escribirlo fuertemente en su modelo.
En sus diferentes puntos de vista a continuación, puede hacer <%= Html.DisplayFor(your model) %>
o también puede utilizar la regularmente <% Html.RenderParital("NameOfPartial", ModelX); %>
Editar Para tratar de acercarse a la pregunta original, tal vez esto le puede ayudar de alguna manera (he publicado esto como una respuesta a una pregunta diferente How to change [DisplayName“xxx”] in Controller?)
public class MyDisplayName : DisplayNameAttribute
{
public int DbId { get; set; }
public MyDisplayName(int DbId)
{
this.DbId = DbId;
}
public override string DisplayName
{
get
{
// Do some db-lookup to retrieve the name
return "Some string from DBLookup";
}
}
}
public class TestModel
{
[MyDisplayName(2)]
public string MyTextField { get; set; }
}
tal vez se podría reescribir la medida atributo para hacer algún tipo de Nombre-selección basada en la lógica, y de esa manera utilizar el mismo para ambos PartialView modelo de VARIATI ons?
Huelga mi último comentario sobre mi respuesta, ya que aparentemente es difícil alejarse del enfoque de modelo único, veamos si podemos encontrar una solución de todos modos. Pregunta: ¿Tiene alguna forma de diferenciar los dos Modelos en términos de los datos en ellos? –
Básicamente sí. Para mantener nuestra muestra trivial, digamos que el modelo X tiene una propiedad más DataType (int) con valores posibles 1 o 2. – Ramunas