假设我有两个类,一个派生自另一个:
动物和狗
public class Animal
{
public String Name { get; set; }
}
public class Dog : Animal
{
public Boolean HasSpots { get; set; }
}
在我的控制器中,我将动物传递给索引视图
public ActionResult Index()
{
return View(new Dog() {Name = "Dog"});
}
索引 - 我将传入的 Animal 转换为带有 Dog 的编辑器模板。
@model MvcApplication1.Models.Animal
@using (Html.BeginForm("About", "Home", FormMethod.Post, null))
{
@Html.EditorFor(x => x, "Dog", "Animal")
<input type="submit" value="Begin" />
}
这可以正常工作,但是当我尝试在控制器中显式转换回 Dog 时,当我将其发布到 About 时,它不会转换。我想象我将不得不创建一个自定义模型绑定器,但我不知道如何做到这一点。或者,如果我只是完全错过了一些东西。在不包括接口的情况下解决这个问题。
(使用这个作为一个小测试示例,我的实际类要复杂一些)