我正在计划一个新的 mvc 3 应用程序。
我试图让事情尽可能简单。
这是我的问题。
我计划拥有许多具有不同参数的不同模型。我将对所有这些模型进行粗略操作,但我不想对每个模型都有一个视图。我想要一个列表视图和一个编辑视图。
我知道这又与 mvc 架构的丢失耦合风格相悖,但是仅对我来说,向视图发送模型并且视图将计算出要添加的字段等会非常方便。
有没有人听说过 oa 方法来做到这一点?
我正在计划一个新的 mvc 3 应用程序。
我试图让事情尽可能简单。
这是我的问题。
我计划拥有许多具有不同参数的不同模型。我将对所有这些模型进行粗略操作,但我不想对每个模型都有一个视图。我想要一个列表视图和一个编辑视图。
我知道这又与 mvc 架构的丢失耦合风格相悖,但是仅对我来说,向视图发送模型并且视图将计算出要添加的字段等会非常方便。
有没有人听说过 oa 方法来做到这一点?
MVC 有一个Html.EditorFor()
帮助器,您可以在其中提供整个模型,MVC 将从它生成一个表单。当您的视图模型是对象类型并且您将具体对象放入其中时,我还没有尝试过这是否动态工作,但它可能会起作用。
但是对于您将来使用您的方法时会遇到的所有这些问题,我强烈建议您尝试将不同的模型变成对象层次结构(这样您将拥有继承)并根据模型的不同部分视图组合您的视图类型。我在很多场合都成功地使用了最后一种做事方式。(最顶层视图中的代码)中的某些内容:
@model Animal
//Show Animal fields
@if(Model is Cat)
{
//show cat specific fields
Html.Partial("_cat", Model);
}
else if(Model is Dog)
{
//show dog specific fields
Html.Partial("_dog", Model);
}
因此,在您的控制器中,您可以将 Dog、Cat 或 Animal 传递给此视图,并且将呈现的内容取决于模型的类型。