真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

[水煮ASP.NETWebAPI2方法論](1-2)在WebForm應(yīng)用程序中添加ASP.NETWebAPI

問題

在安源等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),安源網(wǎng)站建設(shè)費(fèi)用合理。

 怎么樣將 Asp.Net Web Api加入到Asp.Net Web From應(yīng)用程序中

 

解決方案

 在Visual Studio 2013中,創(chuàng)建新的 Web From,可以直接在"新建 ASP.NET項(xiàng)目"創(chuàng)建項(xiàng)目向?qū)е?,勾選 ASP.NET Web API,將其加入進(jìn)來(lái)。如圖 1-2所示。

 

 [水煮 ASP.NET Web API2 方法論](1-2)在 WebForm  應(yīng)用程序中添加 ASP.NET Web API

 

圖 1-2.在Asp.NET 項(xiàng)目向?qū)?,同時(shí)選中 Web Form和 Web API

 

 因?yàn)榭梢酝ㄟ^ NuGet添加 ASP.NET Web API,所以使用“Install-Package Microsoft.AspNet.WebApi”就可以輕易將其添加到現(xiàn)有的 Web Form解決方案中。

 在Visual Studio 2012中使用也很簡(jiǎn)單,只要?jiǎng)?chuàng)建一個(gè) WebForm項(xiàng)目,然后通過NuGet來(lái)安裝 Web API就可以。

 

工作原理

和在MVC中使用 ASP.NET Web API一樣,在 Web Form項(xiàng)目中ASP.NET Web API使用的結(jié)果就是,Web API和 Web Form應(yīng)用程序運(yùn)行在同一個(gè) ASP.NET進(jìn)程中。

 在 ASP.NET項(xiàng)目中安裝 Microsoft.AspNet.WebApi NuGet包時(shí),會(huì)在App_Start文件夾中添加 WebApiConfig的靜態(tài)類。這個(gè)文件是用來(lái)配置 ASP.NET Web API和定義 ASP.NET Web API路由。

 另外,在Global.asax中的 Application_Start可以找到被添加的代碼,就像下面的代碼片段,調(diào)用Web API配置。

GlobalConfiguration.Configure(WebApiConfig.Register);

 

 Web API運(yùn)行在 Web Form應(yīng)用程序中與運(yùn)行在 MVC應(yīng)用程序中沒什么不同。每個(gè)請(qǐng)求仍將被相關(guān)的 IHttpHandler處理??赡苁怯糜谔幚?Web API的 HttpControllerHandler或者是用于處理 Web Form的處理器。Web Form相關(guān)的 ASPX擴(kuò)展名會(huì)交給 PageHandlerFactory,依次調(diào)用相關(guān)的 IHttpHandler來(lái)處理 HTTP請(qǐng)求。System.Web.UI.Page類是 Web Form應(yīng)用程序的默認(rèn)組成部分,也是一個(gè) IHttpHandler,其實(shí)他才是請(qǐng)求處理器的真正執(zhí)行者。

 

代碼演示

清單1-5展示了一個(gè)簡(jiǎn)單的模型類,這個(gè)模型是ApiController和 Web Form頁(yè)展示數(shù)據(jù)的共享類。

 

清單 1-5. 簡(jiǎn)單模型,Web Form 頁(yè),和 Web API 控制器

public class Book{
    public int Id { get; set; }
    public string Author { get; set; }
    public string Title { get; set; }
}public partial class _Default : Page{
    protected void Page_Load(object sender, EventArgs e)
    {
        int id;
        if (Int32.TryParse((string)Page.RouteData.Values["id"], out id))
        {
            var book = Books.List.FirstOrDefault(x => x.Id == id);
            if (book == null)
            {
                Response.StatusCode = 404;
                return;
            }
            ltlAuthor.Text = book.Author;
            ltlTitle.Text = book.Title;
            hplLink.NavigateUrl = "/api/books/" + book.Id;
        }
        Response.StatusCode = 404;
    }
}public class BooksController : ApiController{
    public Book GetById(int id)
    {
        var book = Books.List.FirstOrDefault(x => x.Id == id);
        if (book == null) throw new HttpResponseException(HttpStatusCode.NotFound);
        return book;
    }
}

 

 這是一個(gè)約定,在解決方案的Cotrollers文件夾中放 ApiController,但是,這并不意味著這是強(qiáng)制要求;在當(dāng)前應(yīng)用程序中,只要被聲明為 public的類,類名以Controller為后綴的 IHttpController實(shí)現(xiàn)類,都會(huì)被運(yùn)行時(shí)發(fā)現(xiàn),也會(huì)被當(dāng)成一個(gè)可以處理的 HTTP請(qǐng)求。

 就像Web API和 MVC一塊兒運(yùn)行一樣,當(dāng)使用 Web Form路由,我們也必須留心那些要被 Web API處理的路由和那些要導(dǎo)向 ASPX頁(yè)面之間引起的沖突。列表 1-6展示了 Web Form和 Web API的簡(jiǎn)單路由設(shè)置。ASP.NET Web API路由是在 WebApiConfig的靜態(tài)類中設(shè)置的,然而,Web Form路由是在RouteConfig靜態(tài)類中設(shè)置的。

 

列表 1-6. Web API 路由和 Web Form 路由

public static class RouteConfig{
    public static void RegisterRoutes(RouteCollection routes)
    {
        var settings = new FriendlyUrlSettings();
        settings.AutoRedirectMode = RedirectMode.Permanent;
        routes.EnableFriendlyUrls(settings);
        routes.MapPageRoute(
        "book-route",
        "book/{id}",
        "~/default.aspx");
    }
}public static class WebApiConfig{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services        // Web API routes        config.MapHttpAttributeRoutes();
        config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
        );
    }
}

網(wǎng)站標(biāo)題:[水煮ASP.NETWebAPI2方法論](1-2)在WebForm應(yīng)用程序中添加ASP.NETWebAPI
當(dāng)前鏈接:http://weahome.cn/article/jioodc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部