<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      怎樣在前端Javascript中調(diào)用C#方法(2)傳遞參數(shù)(附源碼+高手勿入)

        上一篇文章中我們簡單的實現(xiàn)了指定Url可以調(diào)用某個C#方法的功能,但有的朋友提到了,如果帶參數(shù)的方法該怎么調(diào)用呢?這正是這篇文章要說到的內(nèi)容。

        評論中有朋友回復(fù)說文章中講到的內(nèi)容過于簡單基礎(chǔ),其實這個也只是相對而言,分享出來也只是希望能夠?qū)π枰娜擞兴鶐椭R灿信笥颜f標(biāo)題有些不符,多少是有些不符,但也還是有一定的關(guān)聯(lián),所以就讓我將就這個標(biāo)題寫下去吧,如有不妥還望眾高手見諒了。
        上篇中我們已經(jīng)通過反射獲得了請求的方法,實際上這時候我們要拿到該方法所需要的參數(shù)已經(jīng)是一件很簡單的事情了。我們可以通過MethodBase.GetParameters方法獲取到該方法所需要的參數(shù)。
        既然已經(jīng)知道了所需的參數(shù),那我們簡單的修改一下代理類Factory中的Execute方法,即可實現(xiàn)參數(shù)的傳遞了。
        修改后的Execute方法如下:

      void Execute(HttpContext context) {
      //根據(jù)請求的Url,通過反射取得處理該請求的類
      string url = context.Request.Url.AbsolutePath;
      string[] array = url.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
      string typename = "Biz";
      for (int x = 1; x < array.Length - 1; x++) {
      typename += "." + array[x];
      }
      Type type = this.GetType().Assembly.GetType(typename, false, true);
      if (type != null) {
      //取得類的無參數(shù)構(gòu)造函數(shù)
      var constructor = type.GetConstructor(new Type[0]);
      //調(diào)用構(gòu)造函數(shù)取得類的實例
      var obj = constructor.Invoke(null);
      //查找請求的方法
      var method = type.GetMethod(System.IO.Path.GetFileNameWithoutExtension(url));
      if (method != null) {
      var parameters = method.GetParameters();
      object[] args = null;
      if (parameters.Length > 0) {
      args = new object[parameters.Length];
      for (int x = 0; x < parameters.Length; x++) {
      args[x] = Convert.ChangeType(context.Request.Form[parameters[x].Name], parameters[x].ParameterType);
      }
      }
      //執(zhí)行方法并輸出響應(yīng)結(jié)果
      context.Response.Write(method.Invoke(obj, args));
      }
      }
      }

       

      News類中加入一個Plus方法做測試:

       

      public int Plus(int x, int y) {
      return x + y;
      }

       

      再來看看html中的Javascript代碼:

       

      $(function () {
      //綁定按鈕點擊事件
      $("#btnAction").click(function () {
      $.post("/Ajax/News/Plus.aspx", $("form").serialize(), function (txt) {
      $("#result").val(txt);
      }, "text");
      });
      //$("form").serialize()生成的數(shù)據(jù)類似于{x:1,y:2}
      });

       

      Html頁面中的FORM:

       

      <form  action="">
      <input type="text" name="x" value="1" class="txt" />
      <input type="button" disabled="disabled" value="+" class="txt btn" />
      <input type="text" name="y" value="2" class="txt" />
      <input id="btnAction" type="button" value="=" class="txt btn" />
      <input type="text" readonly="readonly" id="result" class="txt" />
      </form>

       

      為什么要用form,其實也就是懶,懶得敲多幾個字母,直接用jquery中的serialize獲取表單數(shù)據(jù)并提交。實際提交的數(shù)據(jù)類似于{x:1,y:2},要想手動獲取提交的數(shù)據(jù)也可以,這樣可能更直觀些,但就是要多敲點代碼:

      $(function () {
      $("#btnAction").click(function () {
      $.post("/Ajax/News/Plus.aspx", {x:$("input[name='x']").val(),y:$("input[name='y']").val()}, function (txt) {
      $("#result").val(txt);
      }, "text");
      });
      });

       

      點擊等于按鈕后,頁面腳本會將兩個輸入框的值發(fā)送到服務(wù)端,服務(wù)端處理后將值響應(yīng)輸出。當(dāng)然,示例的任務(wù)可能過于簡單,但對于有需要的朋友,應(yīng)該能找到它的用處。

       

      發(fā)布文章的目的,一個是分享一點點經(jīng)驗,另一個是希望能跟大家一起交流互相學(xué)習(xí),如果文中有表達(dá)不到位的,或者不妥之處,還望大家見諒。

       

       

      附本篇源碼下載:點擊下載
       
      后續(xù)還會有一些其它的內(nèi)容加入到后面文章中,請有興趣的同學(xué)不妨留意一下。
       
      未完待續(xù)...
      posted @ 2012-03-08 01:41  I,Robot  Views(4391)  Comments(18)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品天堂在线观看| 精品一区二区三区蜜桃久| 亚洲欧美人成人让影院| 久久精品国产亚洲av熟女| 亚洲在线一区二区三区四区| 无码熟妇αⅴ人妻又粗又大| 久播影院无码中文字幕| 南宫市| 国产在线无码精品无码| 国产激情艳情在线看视频| 看全色黄大色黄大片 视频| 最新午夜男女福利片视频| 国产三级精品三级在线观看| 国产一区国产二区在线视频| 亚洲国产综合av在线观看| 亚洲精品香蕉一区二区| 日本久久香蕉一本一道| 综合在线 亚洲 成人 欧美| 国产伦码精品一区二区| 湖州市| 99久热在线精品视频| 欧美乱妇高清无乱码免费| 午夜国产精品福利一二| 粉嫩一区二区三区国产精品| 不卡高清AV手机在线观看| 精品国产高清中文字幕| 亚洲天堂领先自拍视频网| 国产美女久久久亚洲综合| 人妻少妇精品无码专区二区| 久热这里有精彩视频免费| 扒开双腿疯狂进出爽爽爽| 超碰成人精品一区二区三| 精品国产中文字幕懂色| 鸡西市| 亚洲の无码国产の无码步美| 91亚洲免费视频| 2019香蕉在线观看直播视频| 国产精品一区二区国产馆| 亚洲欧美日韩精品成人| 91精品午夜福利在线观看 | 亚洲精品熟女一区二区|