2

我有一个 Web API 项目,其模型如下所示:

public class Account{

string FirstName{get;set;}
string LastName{get;set;}
}

我希望 JSON 响应对属性使用不同的格式和大小写,如下所示:

first_name
last_name

有没有办法通过某种 json 格式化程序全局执行此操作,或者最好创建具有​​适当大小写的单独 ViewModel 类?

4

1 回答 1

0

出于多种原因,您应该创建单独的视图模型类。

最好使用单独的视图模型类,以免模型过度曝光。如果您使用具有 10 个字段的实体类作为视图模型,并且您只想公开其中的 5 个,那么恶意用户可能会使用查询字符串发布额外的数据,并且自动绑定可能会在您没有意识到的情况下将其融合.

在您的示例情况下,您可能希望对字段使用完全不同的名称。这是为您的实体类制作自定义视图模型的完美候选者。

分离这些关注点将有助于您的应用程序在未来更加可重用,并且在当前更容易测试/调试。如果您发现自己处于视图模型过多的情况,请考虑将这些不同的控制器、视图和模型分解为单独的区域(关于区域的博客)。

附带说明一下,如果您想格式化 JSON,那么在事后用 javascript 而不是事前进行可能更容易,因为通常编辑 JSON 序列化程序类是一项很大的工作。您可以编写一个脚本,该脚本会自动将驼峰大小写转换为_单独的小写。这样做的一个缺点是,如果您不期望功能会像那样执行,它可能会在未来产生意想不到的影响。

于 2012-11-08T19:29:56.923 回答