欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

MVC中使用Web API和jQuery通过GET或POST来获取数据

程序员文章站 2022-02-02 20:30:31
...

介绍

在本文中,您可以了解如何使用的WebAPI与MVC和jQuery的。

我已经定义了GET,POST,PUT和使用模型类在客户端和MVC控制器来使用它在jQuery的删除方法。

有关的WebAPI

的ASP.NET Web API是一个框架,它可以很容易地构建达成了广泛的客户端,包括浏览器和移动设备的HTTP服务。

的ASP.NET Web API是为。NET Framework上构建RESTful应用程序的理想平台。

我们已经知道WCF服务和Web服务两者都是基于SOAP的服务和它们使用HTTP作为传输层的协议。

这意味着,它们使用HTTP协议只是为了隧道在互联网上的SOAP消息。但是,所有的客户端都没有处理到合适的SOAP消息。

SOAP消息是内部的XML和XML的处理可能会很复杂某些客户端。而最好的例子非基于SOAP客户端是JQUERY的。

我们可以克服这个问题,我们引入了剩下的WCF服务。如果你是熟悉REST,请通过WCF REST服务的网站,先学会它。

REST是一种架构风格,它说使用更有效和更简单的方式在网络的现有功能。

如果你想了解的功能,并学习它们,这些都是HTTP动词一样的GET,POST,PUT和DELETE。

在REST中,每个东西都是独一无二的识别,并不总是在XML进行通信可以等通过XML,JSON。使用此功能,为此我们呼吁HTTP的REST服务。

使用WCF的REST服务,它需要大量的配置设置,这是一个有点复杂。服务背后的主要目的是建立面向服务的架构不支持REST。

现在,微软简化了,最后才出现的解决方案,创建的ASP.NET的一部分,被称为ASP.NET的Web API。这是ASP.NET技术创建REST服务的一部分。

MVC与API

与MVC4应用程序选择的Web API的模板,这包括一个简单的Web API调用ValuesController。在这里,你会发现很多的特点,是一样的MVC。

这意味着不完全相同,但其代码模式是类似的。如果您不是一个MVC的开发,这些东西可能是困难的你,否则它很容易理解。

让我们来讨论一下这。在MVC中,有一个附加的MVC控制器,而在卷筒纸的API中,有一个附加的API的控制器。

在API的控制器,操作方法是HTTP动词像GET,POST,PUT和DELETE甚至我们可以重载这个方法。


public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Person", 
            action = "Index", id = UrlParameter.Optional }
            );
    }
} 
让我们来讨论一下MVC的路由如何MVC是使用Web API实现。你会得到App_Start文件夹并打开它。


当请求到达的MVC,它需要的URL,并通过它的三个部分。第一个名字是控制器,它用它的名字找到控制器。

其次是行动,那么它找到具有该名称的方法。

而且,我们有默认的id与选项UrlParameter。就这样,我们WebApiConfig.cs文件:


config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
就这样在的WebAPI默认名称为DefaultApi。只是为了与MVC的路由的Web API的路由模板保持独立的第一个定义是API。


我们可以将其更改为customerapi,facebookapi等按我们的要求。

接下来是控制器和id选项RouteParameter。最主要的是,它并没有采取行动在这里,我们只有HTTP方法取决于客户的需求。

如果是get请求,get方法会调用和post请求,那么post方法将调用等。


Controller

让我们创建一个Person类里面的模型文件夹。
public class Person
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public DateTime DOB { get; set; }
}
public class PersonEntities : DbContext
{
    public DbSet<person> Persons { get; set; }
}   

使用的Web API的get方法

在MVC中默认阿比的名字是ValuesController。我已经改变了,而不是返回改为人列表的字符串。


如果你会看到有两个Get方法中值的API,一个用另一个参数与id参数。

对于列表中,我们呼吁不带参数,以获得所有的人的详细信息。请参阅下面的详细资料


public class ValuesController : ApiController
{
    PersonEntities db = new PersonEntities();
    // GET api/values
    public IEnumerable<person> Get()
    {
         return db.Persons.ToList();
         //return new string[] { "value1", "value2" };
    }
}    
我都谈到了默认的返回值。我也dded,我已经在模型类中定义了PersonalEntities。


当您将运行的应用程序,通过浏览使用XML在Chrome浏览器了../ API/数值/你会得到的数据。您可以从GET方法请求获取数据的JSON表示。

对于这一点,我在指数2查看页面设计它。这仅仅是作为内容协商。根据客户端请求时,它返回的数据。

当客户说的XML,它返回的XML和JSON,甚至说我们回到我们自己的自定义格式,像名片,阶级或任何东西。


$(document).ready(function () {
        $.ajax({
            url: "http://localhost:49493/api/Values",
            type: "Get",
            success: function (data) { 
                for (var i = 0; i < data.length; i++) {
                    $("
<tr></tr>

<td></td>
" + data[i].Name + "</td>
<td></td>
" + data[i].Address + "</td>
<td></td>
" + data[i].DOB + "</td></tr>").appendTo("#tbPerson");                   
                }
            },
            error: function (msg) { alert(msg); }
        });
    });    

使用的Web API的删除方法


<script>
    $(document).ready(function () {
        $("#deleteApi").click(function () {
           // debugger;
            var id = $("#ID").val();
            $.ajax({
                url: "http://localhost:49493/api/Values/" + id,
                type: "Delete", 
                success: function (data) {
                    alert(´Deleted Successfully´);
                    window.location.href = "../Index";
                },
                error: function (msg) { alert(msg); }
            });
        });
    });
</script>
但在删除情况下如果我们将检查API方法只有一个参数。为此,我们必须在MVC格式的URL发送参数。

所以,我已经添加在URL中的id参数的值,类型为删除。然后,它会调用的WebAPI的删除方法,其中的API方法如下如下。

public void Delete(int id)
 {
       Person obj = db.Persons.Find(id);
       db.Persons.Remove(obj);
       db.SaveChanges();
 }
对于操作结果我在这里访问相同的WebAPI方法。

[HttpPost]// POST: /Person/Delete/5 
public ActionResult Delete(int id, FormCollection collection)
{
	try
	{
		db.Delete(id);
		return RedirectToAction("Index");
	}
	catch
	{
		return View();
	}
}

结论

的ASP.NET Web API是一个框架,它可以很容易地构建达成了广泛的客户端,包括浏览器和移动设备的HTTP服务。

的ASP.NET Web API是为。NET Framework上构建RESTful应用程序的理想平台。

源码下载链接:http://dwtedx.com/download.html?bdkey=s/1pJwj8wV 密码: pbn2