0
我需要根據某些條件將不同模型綁定到同一視圖。 然後我可以在運行時更改視圖模型嗎?Mvc更改運行時視圖模型
我需要根據某些條件將不同模型綁定到同一視圖。 然後我可以在運行時更改視圖模型嗎?Mvc更改運行時視圖模型
我真的不建議這樣做,因爲視圖與模型耦合。我希望你有兩個非常相似的模型,但是你仍然需要在一個模型中放置不同的屬性,而不是另一個模型中的屬性,以及修改這個視圖可能導致超過一個問題的問題一個地區。
你可以做到這一點,如果兩者你的模型從相同的基本繼承:
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代碼!