Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 一区二区三区不卡视频,mmmmxxxx国产在线观看,亚洲精品动漫一区二区三区在线

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          ASP 引用文件

          include 指令

          通過使用 #include 指令,您可以在服務(wù)器執(zhí)行 ASP 文件之前,把另一個 ASP 文件的內(nèi)容插入到這個 ASP 文件中。

          #include 指令用于創(chuàng)建函數(shù)、頁眉、頁腳或者其他多個頁面上需要重復(fù)使用的元素等。


          如何使用 #include 指令

          這里有一個名為 "mypage.asp" 的文件:

          <!DOCTYPE html>

          <html>

          <body>

          <h3>Words of Wisdom:</h3>

          <p><!--#include file="wisdom.inc"--></p>

          <h3>The time is:</h3>

          <p><!--#include file="time.inc"--></p>

          </body>

          </html>

          這是 "wisdom.inc" 文件:

          "One should never increase, beyond what is necessary,

          the number of entities required to explain anything."

          這是 "time.inc" 文件:

          <%

          Response.Write(Time)

          %>

          如果您在瀏覽器中查看源代碼,它將如下所示:

          <!DOCTYPE html>

          <html>

          <body>

          <h3>Words of Wisdom:</h3>

          <p>"One should never increase, beyond what is necessary,

          the number of entities required to explain anything."</p>

          <h3>The time is:</h3>

          <p>11:33:42 AM</p>

          </body>

          </html>


          引用文件的語法

          如需在 ASP 頁面中引用文件,請把 #include 指令放在注釋標(biāo)簽中:

          <!--#include virtual="somefilename"-->

          or

          <!--#include file ="somefilename"-->

          Virtual 關(guān)鍵詞

          請使用關(guān)鍵詞 virtual 來指示以虛擬目錄開始的路徑。

          如果一個名為 "header.inc" 的文件位于虛擬目錄 /html 中,下面這行代碼會插入 "header.inc" 文件中的內(nèi)容:

          <!-- #include virtual ="/html/header.inc" -->

          File 關(guān)鍵詞

          請使用關(guān)鍵詞 file 來指示一個相對路徑。相對路徑是以含有引用文件的目錄開始的。

          如果您在 html 目錄中有一個文件,且 "header.inc" 文件位于 html 頭部,下面這行代碼將在您的文件中插入 "header.inc" 文件中的內(nèi)容:

          <!-- #include file ="headersheader.inc" -->

          請注意被引用文件 (headersheader.inc) 的路徑是相對于引用文件的。如果包含 #include 聲明的文件不在 html 目錄中,這個聲明就不會生效。


          提示和注釋

          在上面的一部分中,我們已經(jīng)使用 ".inc" 來作為被被引用文件的文件擴展名。請注意:如果用戶嘗試直接瀏覽 INC 文件,這個文件中內(nèi)容將會被顯示出來。如果您的被引用文件中的內(nèi)容包含機密的信息或者是您不想讓任何用戶看到的信息,那么最好還是使用 ".asp" 作為擴展名。ASP 文件中的源代碼被編譯后是不可見的。被引用的文件也可引用其他文件,同時一個 ASP 文件可以對同一個文件引用多次。

          重要事項:在腳本執(zhí)行前,被引用的文件就會被處理和插入。下面的腳本無法執(zhí)行,這是由于 ASP 會在為變量賦值之前執(zhí)行 #include 指令:

          <%

          fname="header.inc"

          %>

          <!--#include file="<%fname%>"-->

          您不能在腳本分隔符之間包含文件引用。下面的腳本無法執(zhí)行:

          <%

          For i = 1 To n

          <!--#include file="count.inc"-->

          Next

          %>

          但是這段腳本可以執(zhí)行:

          <% For i = 1 to n %>

          <!--#include file="count.inc" -->

          <% Next %>

          wagger 是一個規(guī)范且完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。
          Swagger 的目標(biāo)是對 REST API 定義一個標(biāo)準(zhǔn)且和語言無關(guān)的接口,可以讓人和計算機擁有無需訪問源碼、文檔或網(wǎng)絡(luò)流量監(jiān)測就可以發(fā)現(xiàn)和理解服務(wù)的能力。當(dāng)通過 Swagger 進(jìn)行正確定義,用戶可以理解遠(yuǎn)程服務(wù)并使用最少實現(xiàn)邏輯與遠(yuǎn)程服務(wù)進(jìn)行交互。與為底層編程所實現(xiàn)的接口類似,Swagger 消除了調(diào)用服務(wù)時可能會有的猜測。

          Swagger 的優(yōu)勢

          • 支持 API 自動生成同步的在線文檔:使用 Swagger 后者可以直接通過代碼生成文檔,不再需要自己手動編寫接口文檔了,對程序員來說非常方便,可以節(jié)約寫文檔的時間去學(xué)習(xí)新技術(shù)。
          • 提供 Web 頁面在線測試 API:光有文檔還不夠,Swagger 生成的文檔還支持在線測試。參數(shù)和格式都定好了,直接在界面上輸入?yún)?shù)對應(yīng)的值即可在線測試接口。

          實戰(zhàn)演示

          1、新建一個asp.net core web api項目

          2、Nuget安裝Swagger

          3、為接口及接口中用到的類添加注釋

          4、右鍵項目屬性(如果項目中有其他庫的,都需要參照配置下)生成XML文檔,如下圖打勾保存

          5、Startup配置Swagger,這里用到了一個自定義的擴展類:SwaggerHttpHeaderOperation,這個類里面增加了調(diào)試的Http請求header參數(shù),比如Token就可以擴展下,這樣在調(diào)試時就可以填寫該參數(shù),方便調(diào)試需要鑒權(quán)的接口。

          using Microsoft.AspNetCore.Builder;
          using Microsoft.AspNetCore.Hosting;
          using Microsoft.Extensions.Configuration;
          using Microsoft.Extensions.DependencyInjection;
          using Microsoft.Extensions.Hosting;
          using System;
          using System.IO;
          using System.Text;
          
          namespace ZQSwaggerDemo
          {
              public class Startup
              {
                  const string PROJECTNAME = "知擎物聯(lián)API";
                  const string VERSION = "v1.0.0";
          
                  public Startup(IConfiguration configuration)
                  {
                      Configuration = configuration;
                  }
          
                  public IConfiguration Configuration { get; }
          
                  // This method gets called by the runtime. Use this method to add services to the container.
                  public void ConfigureServices(IServiceCollection services)
                  {
                      services.AddControllers();
                      //配置swagger
                      StringBuilder fDescription = new StringBuilder();
                      fDescription.Append("<a target='_blank' href='https://www.yyzq.net' class='link'>常州知擎物聯(lián)科技有限公司 版權(quán)所有</a>");
                      fDescription.Append($"<br>API適用標(biāo)注說明:");
                      fDescription.Append($"<br><span style='color:blue'>【NOTOKEN】</span>:無需登錄可訪問");
                      services.AddSwaggerGen(c =>
                      {
                          c.OperationFilter<SwaggerHttpHeaderOperation>();
          
                          c.SwaggerDoc(VERSION, new Microsoft.OpenApi.Models.OpenApiInfo()
                          {
                              Title = PROJECTNAME,
                              Version = VERSION,
                              Description = ""
                          }); ;
                          //加載注釋xml文件(這里演示的代碼是為了方便一次性加載多個XML文檔,省去了一個個XML文件添加的繁瑣)
                          string[] files = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "ZQ*.xml");
                          foreach (string item in files)
                          {
                              c.IncludeXmlComments(item);
                          }
                      });
                  }
          
                  // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
                  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
                  {
                      if (env.IsDevelopment())
                      {
                          app.UseDeveloperExceptionPage();
                      }
                      app.UseSwagger();//啟用中間件服務(wù)生成Swagger作為JSON終結(jié)點
                      app.UseSwaggerUI(c =>
                      {
                          //啟用中間件服務(wù)對swagger-ui,指定Swagger JSON終結(jié)點
                          c.SwaggerEndpoint($"/swagger/{VERSION}/swagger.json", PROJECTNAME);
                      });
                      app.UseRouting();
          
                      app.UseAuthorization();
          
                      app.UseEndpoints(endpoints =>
                      {
                          endpoints.MapControllers();
                      });
                  }
              }
          }
          using Microsoft.OpenApi.Models;
          using Swashbuckle.AspNetCore.SwaggerGen;
          
          namespace ZQSwaggerDemo
          {
              /// <summary>
              /// Swagger調(diào)試header
              /// </summary>
              public class SwaggerHttpHeaderOperation : IOperationFilter
              {
                  /// <summary>
                  /// 
                  /// </summary>
                  /// <param name="operation"></param>
                  /// <param name="context"></param>
                  public void Apply(OpenApiOperation operation, OperationFilterContext context)
                  {
                      operation.Parameters.Add(new OpenApiParameter()
                      {
                          Name = "Token",
                          In = ParameterLocation.Header,
                          Required = false,
                          Schema = new OpenApiSchema { Type = "string" }
                      });
                  }
              }
          }
          

          6、啟動項目,訪問:http://localhost:45039/swagger/index.html 可以看到之前寫的注釋都在文檔中體現(xiàn)了出來

          7、調(diào)試接口,對想要調(diào)試的接口,展開接口后,點擊Try it out按鈕,這里我們可以看到之前擴展的Header部分參數(shù)(本DEMO僅示范,并未使用,實際項目中還是經(jīng)常需要自定義一些header參數(shù)),填寫好參數(shù)后,點擊Execute調(diào)用接口,可以看到成功返回了數(shù)據(jù)。

          歡迎大家交流評論,共同進(jìn)步,有任何建議或問題隨時私聊我

          如果本文對您有幫助,請關(guān)注,點贊,這是對我繼續(xù)分享技術(shù)最好的鼓勵。

          有需要本文DEMO的,私聊關(guān)鍵字:SwaggerDEMO

          有的服務(wù)器控件都必須出現(xiàn)在 <form> 標(biāo)簽中,<form> 標(biāo)簽必須包含 runat="server" 屬性。


          ASP.NET Web 表單

          所有的服務(wù)器控件都必須出現(xiàn)在 <form> 標(biāo)簽中,<form> 標(biāo)簽必須包含 runat="server" 屬性。runat="server" 屬性表明該表單必須在服務(wù)器上進(jìn)行處理。同時也表明了包含在它內(nèi)部的控件可被服務(wù)器腳本訪問:

          <form runat="server">

          ...HTML + server controls

          </form>

          注釋:該表單總是被提交到自身頁面。如果您指定了一個 action 屬性,它會被忽略。如果您省略了 metion 屬性,它將會默認(rèn)設(shè)置 method="post"。同時,如果您沒有指定 name 和 id 屬性,它們會由 ASP.NET 自動分配。

          注釋:一個 .aspx 頁面只能包含一個 <form runat="server"> 控件!

          如果您在一個包含不帶有 name、method、action 或 id 屬性的表單的 .aspx 頁面中選擇查看源代碼,您會看到 ASP.NET 添加這些屬性到表單上了,如下所示:

          <form name="_ctl0" method="post" action="page.aspx" id="_ctl0">

          ...some code

          </form>


          提交表單

          表單通常通過點擊按鈕來提交。ASP.NET 中的 Button 服務(wù)器控件的格式如下:

          <asp:Button id="id" text="label" OnClick="sub" runat="server" />

          id 屬性為按鈕定義了一個唯一的名稱,text 屬性為按鈕分配了一個標(biāo)簽。onClick 事件句柄規(guī)定了一個要執(zhí)行的已命名的子例程。

          在下面的實例中,我們在 .aspx 文件中聲明了一個 Button 控件。點擊按鈕運行改變按鈕上文本的子例程:

          實例


          主站蜘蛛池模板: 午夜精品一区二区三区在线观看| 国精产品一区一区三区免费视频| 精品一区二区91| 日韩精品无码Av一区二区| 一区二区三区视频免费| 国产午夜精品一区二区三区嫩草| 美女福利视频一区| 久久无码AV一区二区三区| 日本一区二三区好的精华液| 精品女同一区二区三区在线| 三上悠亚日韩精品一区在线 | 2018高清国产一区二区三区| 亚洲av永久无码一区二区三区| 国产日韩综合一区二区性色AV| 丰满人妻一区二区三区免费视频| 少妇人妻精品一区二区三区| 福利国产微拍广场一区视频在线| 国产精品自在拍一区二区不卡| 风间由美性色一区二区三区| 亚洲AV无码一区二区三区鸳鸯影院| 日本一区视频在线播放| 久久精品视频一区二区三区| 日韩一区二区三区免费体验| 国产乱码精品一区二区三区中文| 成人精品一区二区不卡视频| 久久精品国产一区二区| 性色AV一区二区三区天美传媒| 国产一区二区视频在线观看| 中文字幕AV一区二区三区人妻少妇| 八戒久久精品一区二区三区| 蜜桃视频一区二区三区在线观看| 日本强伦姧人妻一区二区| 亚洲制服丝袜一区二区三区| 国产激情精品一区二区三区| 国产精品美女一区二区三区| 亚洲国产一区国产亚洲| 久久亚洲色一区二区三区| 精品国产一区二区三区| 偷拍激情视频一区二区三区| 国产午夜精品免费一区二区三区| 精品综合一区二区三区|