当前位置: 首页 > 面试题库 >

使用WebAPI或MVC在ASP.NET中返回JSON

韦欣德
2023-03-14
问题内容

我正在构建一个客户端脚本繁重的ASP.NET MVC应用程序,它将使用JSON和jQuery来操作DOM。

我的理解是 Web API ControllerMVC Controller 都可以返回JSON。

在我的情况下,应该使用 Web API控制器 还是 MVC控制器


问题答案:

可以在任何ASP.NET应用程序中创建并托管Web API控制器,而不仅仅是MVC应用程序。因此,创建Web
API的明显原因是您没有MVC前端(例如,公司/组织托管的经典RESTful Web服务)。

MVC控制器通常依赖于MVC框架,如果您查看默认模板以及社区和对等方所做的大部分工作,您会注意到几乎所有MVC控制器都是在考虑视图的情况下实现的。

就个人而言,当我打算使用View()进行响应时,我将使用MVC控制器,并且对于不依赖于特定视图的任何事物,都将使用Web API。

当然,有一些警告,但是通常来说,如果您不需要MVC的模型绑定行为,则您的服务是以数据为中心的,而操作是以数据为中心的(例如CRUD操作),那么您可能希望使用“
Web API控制器”而不是“模型视图控制器”。相反,如果您的操作是以视图为中心的(例如,向用户提供用户管理页面),或者您需要MVC的模型绑定来生成“
ajax局部”(非常不可能),那么您将需要MVC控制器。

我个人使用Web API控制器来驱动基于JSON的RESTful客户端,使用MVC控制器来处理基本的浏览器路由和SPA的传递。



 类似资料:
  • 根据我的场景,我应该使用Web API控制器还是MVC控制器?

  • 在常规MVC控制器中,我们可以使用输出pdf。 但是如何将其更改为呢? So上也有一篇类似的文章:在ASP.NET Web API中从控制器返回二进制文件。它讨论输出一个现有的文件。但我不能让它和溪流一起工作。 有什么建议吗?

  • 问题内容: 在某些情况下,我具有NewtonSoft JSON.NET,在控制器中,我只是从控制器中返回Jobject,一切都很好。 但是我遇到的情况是,我从另一个服务中获取了一些原始JSON,并且需要从我的webAPI中返回它。在这种情况下,我不能使用NewtonSOft,但是如果可以的话,我将根据字符串创建一个JOBJECT(这似乎是不必要的处理开销),并返回该值,这一切对世界都很好。 但是,

  • 问题内容: 我正在为我的网站创建自动完成功能。到目前为止,javascript部分已经结束。另外,我可以获取匹配用户的MembershipUser对象。 我需要以以下格式返回JSON: 这是ashx中的代码: 如何以所需格式返回json?谢谢。 问题答案:

  • 问题内容: 我正在尝试创建控制器操作,该操作将根据参数返回JSON或部分html。使结果异步返回到MVC页面的最佳方法是什么? 问题答案: 在您的操作方法中,返回Json(object)以将JSON返回到您的页面。 然后只需使用Ajax调用action方法即可。您可以使用ViewPage中的一种辅助方法,例如 SomeMethod将是一个javascript方法,然后评估返回的Json对象。 如果

  • 如何从 方法返回 ?我尝试用 抛出 ,我尝试了 这两种方法都不管用。两者总是返回 。我错过了什么?它必须是一些简单的东西,但我看不出来。