2011-02-24 67 views
1

可以说我有一个web应用程序和一些数据库表我想要返回它的数据作为数组/对象集合显示在网页和作为json构建例如api。将相同的数据转换为不同的格式(模型或控制器)

我的问题是:我应该在我的模型中创建一个方法从数据库中返回数据作为json和其他方法返回数据作为数组,或者我应该只使用“getData”方法,并且他们操纵输出我的控制器?

情况1:

模型:

function getDataFromDb(){ 
// query the db 
// return as array/obj 
} 

function getDataAsJson(){ 
result = getDataFromDb(); 
// manipulate the result and return json object 
} 

案例2

型号:

function getDataFromDb(){ 
// query the db 
// return as array/obj 
} 

控制器

result = getDataFromDB(); 
// create json data from the returned result 

回答

0

Single Responsibility principle将引导您到网络接口控制器(S)和API控制器(S)分开。这将是一种更清洁和更可维护的方法。但是,如果你无论如何都不能这样做,那么至少要分开这些方法。 “多功能”方法难以维护,使您的方法更加复杂。

0

在我看来,这是控制员的工作。该模型不应该知道(或关心)格式。

就我个人而言,我会创建一些类型的帮助类,将您的模型数据序列化为JSON。如果你在ASP.NET MVC 3上运行,你应该看看JavaScriptSerializer类。

相关问题