1
可以說我有類食品類BirdFood從食品派生:KnownType型號在MVC結合期間財產屬性?
public class Food
{
...
}
public class BirdFood : Food
{
public int SeedCount { get; set; }
}
而且可以說我有一類生物和類鳥,從生物派生
public class Creature
{
public Food Food { get; set; }
}
public class Bird : Creature
{
...
}
最後,可以說我對生物視圖模型:
public class ViewModel
{
public Creature Creature { get; set; }
}
當我創建鳥的一個實例,我也創建BirdFood的一個實例,並指定我t傳遞給Food屬性並將視圖模型傳遞給View。夠簡單。
public ActionResult Index()
{
ViewModel viewModel = new ViewModel();
viewModel.Creature = new Bird();
viewModel.Creature.Food = new BirdFood() { SeedCount = 100 } ;
return View(viewModel);
}
和視圖:
<% using(Html.BeginForm("Save", "Home", FormMethod.Post))
{ %>
<%: Html.Hidden("Creature.Food.SeedCount", (Model.Creature.Food as MvcApplication6.Controllers.BirdFood).SeedCount) %>
<input type="submit" />
<% } %>
好了,這就是問題所在。當在Action中接收到視圖模型時,Creature屬性是基類Creature,而不是導出類型Bird,派生類型BirdFood的SeedCount屬性具有看起來像Creature.Food.SeedCount 100
的發佈參數(來自螢火蟲)
好吧,我的問題是,我該如何維護派生類型時,模型綁定?我懷疑它有一個自定義的模型綁定的事,但我無能,當談到這一點。有任何想法嗎?
搖滾樂。希望有一個簡單而更原生的解決方案,但這將完成工作。 – Levitikon