首先,如果这是一个愚蠢的问题,我想道歉。在学习MVC时,我遇到了一个交叉问题,该交叉基于模型创建了一个强大的类型视图,例如,它将通过2种不同的功能显示所有Users,首先返回一个通过用户集合的View,其次将返回一个JSON对象集合。所以我的问题是,由于我不熟悉JSON,而对于我来说,使用模型更加清晰,为什么在MVC中使用JSON?
简而言之,为什么使用:
var users = _db.Users
.Where(r => r.Name.Contains(q))
.Take(10)
.Select(r => new { r.Name,r.LastName,r.Address.Country });
return Json(users, JsonRequestBehavior.AllowGet);
代替:
var users= _db.Users
.Where(r => r.Name.Contains(q))
.Take(10);
return View(users);
也许这是一个不好的代码示例,但是如果我们可以直接传递模型,为什么要在将模型传递给视图之前将模型转换为Jason。
对于第一个代码段,很有可能将其用于ajax调用,以将数据从服务器无缝加载到客户端,并可能保持刷新而不重新加载页面。同样,Users
实体可能具有比客户端所需更多的信息,因此第一个示例是减少所提供的信息,并且不需要您创建新模型来表示它。
第二个示例是实际上返回视图的控制器操作,并且该视图是强类型的。
如果您要创建一个使用WebApi的项目,则不会返回视图,您希望客户端请求数据并由客户端呈现它认为合适的数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句