ASP.NET MVC - 一个控制器和多个模型/视图

时间:2014-01-29 12:13:25

标签: c# asp.net-mvc

我开始研究一些小项目,目前正在考虑建筑领域的最佳方法。 假设我有一个具有很多属性的类,我在数据库中从控制器中检索这些属性。

Building building = BuildingsBLL.GetBuilding(buildingID);

建筑物属于不同类型,具有不同的属性集 我看到两个选择:

  1. 我可以通过大量代码将Bulding传递给公共视图并显示/ 根据建筑类型隐藏页面上的特定块(如果建筑类型为blablabla ... ,则使用)。或

  2. 我可以将建筑物转换为其他类型(SchoolHospital或smth else)并以最少的代码将其传递给某个视图。

  3. 所以在第一种情况下,我只需要一个视图而不需要模型(?),在第二种情况下,我需要为每种建筑类型单独的模型和视图。

    在我看来,第二种情况更可取。但也许我错过了一些东西,上述方法根本无法使用?

1 个答案:

答案 0 :(得分:1)

  

所以在第一种情况下我只需要一个视图而没有模型(?)和   第二种情况我需要为每种建筑类型单独的模型和视图。

我会按照以下方式进行操作 - 拥有抽象Building模型,然后从SchoolBuilding模型继承HospitalBuildingBuilding模型。

然后在前端,如果我在学校和医院建筑物上都有很多操作,那么我将为两者分别设置控制器。但是如果操作要少得多,那么我将只有楼宇控制器,其中不同的行动对应于学校和医院模型。根据可重用性的数量,我将提取医院和学校行动的部分观点。