2016-01-03 5 views

ответ

0

Я бы не рекомендовал это делать, поскольку представление связано с моделью. Я ожидаю, что у вас есть две очень похожие модели для этого, но вам все равно придется создавать различные условия вокруг свойств, которые находятся в одной модели, а не в другой, наряду с проблемой, которая может изменить проблему, одной области.

Вы можете это сделать, если оба ваши модели наследуют от одной и той же базы:

public class ModelBase 
{ 
    public string SharedProperty { get; set; } 
} 
public class ModelA : ModelBase 
{ 
    public string AProp { get; set; } 
} 
public class ModelB : ModelBase 
{ 
    public string BProp { get; set; } 
} 

Затем в целях использования базы для модели и актеров, где это необходимо:

@model ModelBase 

@if (Model.GetType() == typeof(ModelA)) 
{ 
    @Html.EditorFor(m => ((ModelA)m).AProp) 
} 

Вы также необходимо принять ModelBase и лить в контроллере:

public ActionResult SomeAction(ModelBase model) 
{ 
    bool modA = model.GetType() == typeof(ModelA); 
    string a = modA ? ((ModelA)model).PropA : ""; 
} 

Но опять-таки это приведет ко мне ssy код!

Смежные вопросы