0

我正在使用 MVC3。

我有一个非常复杂的文档类,其中包含许多子类,我们称它们为“狗”、“猫”、“羊”、“牛”、“山羊”。

我想使用通用控制器来列出、添加和编辑这些类中的每一个。

列表:我可以通过传入文档模型并遍历相关类来列出相关实体。

编辑:我需要获取 id 并识别感兴趣的类别,即“狗”,然后将其作为模型传递以进行编辑。但是下一轮我可能会编辑一个“猫”实例。通常在 MVC 中,据我了解,理想情况下会创建一个“DogController”和一个“CatController”。然而,由于这个文档类是灵活的,我不希望硬编码控制器。可能需要再添加 2 个类,即“马”和“驴”。

目前,我正在使用一些 if/else 逻辑来确保设置正确的视图并使用正确的类调用。然而,这确实感觉好像我在这里打破了一些 MVC 规则。

也许答案在于使用更正式的 ViewModel。也许我可以将其中一个属性作为子类(“狗”)。也许这可以在运行时使用 IOC 换掉?

想法和指针赞赏?

谢谢。

编辑:我尝试使用不同的输入模型创建 2 个版本的“编辑”操作

    [HttpPost]
    public ActionResult Edit(Dog DogModel){}

    [HttpPost]
    public ActionResult Edit(Cat CatModel){}

我认为由于方法重载,MVC 可以在视图发布时选择正确的方法,然后应用模型绑定。

可能是我期望太高,或者我的理解不够。

4

1 回答 1

0
routes.MapRoute("Route", "{controller}/{action}/{name}/{id}", new { controller = "Animal", action = "search", name = "Home", id = 0 });
于 2013-02-25T19:00:35.853 回答