【问题标题】:Asp.net mvc web application with asp.net web apis带有 asp.net web apis 的 Asp.net mvc web 应用程序
【发布时间】:2014-05-15 02:40:54
【问题描述】:

我是Asp.Net MVC 的新手。我正在做 asp.net 网络应用程序。我有数据层,我只想从MVC Web api 公开。对于 web api 项目,我使用实体框架作为模型,对于 mvc 应用程序,我使用实体类。我正在使用 jquery 从视图中调用 web api 并执行所有操作。

这是正确的方法还是需要使用一些 jquery 框架。或者是否有任何可用的项目仅使用 asp.net web api。我热身谷歌这么多次,但没有发现必不可少的。请在这里帮助我。

【问题讨论】:

  • 是否需要访问服务端(MVC Controller)的数据层?
  • @sunil : 我想从 web api 访问它
  • 首先了解 MVC 网站的基础知识,因为它带有许多您只需要启用的不显眼的 (Ajax + jQuery) 功能。 然后根据需要应用一层客户端jQuery来增强用户体验。 (旁注:通常我在一个单独的库中维护 EF 模型,包含所有扩展方法和业务逻辑,并将其包含到我的 Web 项目中)。

标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api


【解决方案1】:

您可以使用 jQuery 或任何您喜欢的 javascript 框架从您的 API 中检索数据。如果你真的想的话,你甚至可以使用raw javascript。但是,如果您的大部分逻辑都将在客户端上运行,您可能需要研究一些 MVC/MVVM/MVP javascript 库/框架来保持井井有条。

一个好的起点是 Single Page Application template,它内置于 Visual Studio 2013 中,可用于 2012。它使用 .NET MVC 加载 HTML 标记、样式和脚本,然后使用 Knockout.js 构建应用程序并从位于同一应用程序中的 Web API 控制器发送和检索数据。还值得注意的是,您可以像 Ember、Angular、Backbone、Durandal 等一样使用 grab templates that use other popular javascript frameworks。如果您更喜欢其中一个框架而不是 Knockout,请下载其中一个模板并查看代码。

【讨论】:

    【解决方案2】:

    没有看到任何代码,听起来您的想法是正确的。您可以使用您选择的任何客户端框架与您的 Api 控制器(Knockout、Angular、Ember、Backbone)进行交互,也可以直接使用 jQuery。

    由于您是 ASP.NET Mvc 的新手,因此对传统 Mvc 控制器和新 Api 控制器之间的区别进行一些说明似乎是有必要的。在传统的 MVC 中,控制器会选择与数据(模型)结合显示的视图 (UI):

    public ActionResult Index()
    {
         var theData = serviceLayer.GetData();
         return View("Index", theData);
    }
    

    您还可以从控制器返回纯 JSON 数据:

    public JsonResult GetMyData()
    {
         var theData = serviceLayer.GetData();
         return new JsonResult()
         {
              Data = theData
         };
    }
    

    这有一个问题,即难以确定检索 UI 的端点的名称与检索数据的端点的名称。 Web Api 是微软对RESTful 框架的实现。 Api 控制器通常只包含与 HTTP 动词对应的方法,而不是具有许多不同方法(Index()、GetSingle()、GetMany()、List()、DoSomethingElse()、DoAnotherThing() 等)的控制器:获取、发布、放置和删除。然后可以调用相同的端点,仅由您使用的动词不同。以如下端点为例:

    http://mydomain.com/api/customer/1234

    调用此端点将为 id=1234 的客户执行以下操作:

    • GET 将返回数据
    • PUT 将更新数据
    • DELETE 将删除数据

    除了让您自己的开发团队更清楚之外,Api 还让您更容易向第三方公开您的数据。您需要提供根 URL 和对象列表,任何开发人员都可以使用它。您还需要做其他事情,例如实现安全令牌,但我想展示使用易于理解的框架的好处。

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      • 2011-03-28
      相关资源
      最近更新 更多