asp.net中前台JavaScript库调用后台C#变量和有参函数方法

原创 2016年05月31日 11:29:24

最近在做项目时,遇到了js库里调用后台的变量和函数的问题,一开始不知道咋办,google了很多。

1.封装成JavaScript库,其中调用后台C#变量:

     网上有三种基本方法: 
方法一:1、通过页面上隐藏域访问 <input id="xx" type="hidden" runat="server" > 
方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为 ' <%=n% > '或"+ <%=n% >+" 
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本 
" <script language= 'javascript ' >var temp=" + tmp + " </script >" 
tmp是后台变量,然后js中可以直接访问temp获得值。 

  经过测试,方法不起作用;方法三在html中注册一段脚本,测试可行的是:

<script type="text/javascript" language="javascript">        
          var v1= "<%=a%>";
          var v2= "<%=b%>";
          var v3= "<%=c%>";
          var v4= "<%=d%>";
          var v5= "<%=e%>";
    </script>

这样到js脚本中就可以直接调用v1,v2,v3,v4,v5等。

2.封装成JavaScript库,其中调用后台C#中有参函数:

之前网上很多的做法如下:

 function UploadToDB(fName) {
            rst = '<%= UploadToDB("' + fName + '") %>';
            UploadToDB = rst;
        }

fName无法传递到后台,后台获取的值仍然是“+ fName +”。

Web运行过程:
【转】分清楚客户端和服务端,var  value=<% =Ceshi(xValue) %>或者var  value= ’<% =UploadToDB(“‘+xValue+’”) %>‘都是无法将前台值传到后台的里面的代码是在服务端执行的,执行时间是客户端页面加载之前,那时js根本还未执行,所以没有js变量。

对于调用C#函数,网上更多的人推荐使用AJAX,个人觉得能用AJAX解决的,一般方法也是可以的,可能稍微复杂点罢了。对于无参函数,相对简单,网页上有好几种方法:

方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 
2、在前台写一个js函数,内容为document.getElementById("btn1").click(); 
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

方法二:在html里用 <%=fucntion()% >可以调用前台脚本;

方法三:doPostBack()

方法四:隐式控件;

当有参数传递,甚至有返回值时,就显得比较麻烦了,这里化繁求简,第一种和第四种方法合并,用隐式控件传值【转】:

 HTML中JS如下:

<pre name="code" class="javascript">function upload(fid) {
            var id = document.getElementById("ctl00_ContentPlaceHolder1_Id");
            var btn1 = document.getElementById("ctl00_ContentPlaceHolder1_Btn1");
             id.value = fid;
             btn1.click();
             return id.value;
        }
     </script>



HTML中需要添加一下:

<asp:HiddenField ID="Id" runat="server" Value="1"/> 
        <div style="display:none;">      
        <asp:Button ID="Btn1" Width="0" runat="server" Text="" OnClick="UploadToDB" />       
        </div>  
后台C#UploadToDB函数:

<span style="font-size:18px;">//public int UploadToDB(string fId)
 public void UploadToDB(object sender, EventArgs e)
    {
        int rst = 0;
        string fId =this.Id.Value; //隐式控件传递值
//return rst;
this.Id.Value =rst;
}</span>


js脚本中就可以直接调用C#中的变量或者有参函数:

webObj.HttpAddPostString("id", v1);
alert(getGoodsList(returnValue));


总结:以上只是鄙人初识asp.net的见解,还请大牛多多指导,检查提出意见。( ⊙ o ⊙ )!,勇士夺得西部冠军了(10,1-3逆转)。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhoulei13572468/article/details/51543679

前台js与后台C#互相调用

这里总结的很好,拿来了,另外加了点说明 C#代码与javaScript函数的相互调用问: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访...
  • kucool
  • kucool
  • 2007-12-19 15:00:00
  • 2393

前台 JS 获取后台C#值

//前台js 部门
  • SWSHBON
  • SWSHBON
  • 2015-10-18 12:14:01
  • 1405

C#与JavaScript互相调用

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1...
  • shan1774965666
  • shan1774965666
  • 2016-05-21 14:42:32
  • 1064

C# 用XiliumCefGlue做浏览器,JS和C#相互调用

Xilium.CefGlue JS C# 互调 Xilium.CefGlue 初始化最精简Demo Xilium.CefGlue JS调用C代码 Xilium.CefGlue C调用JS代码无返回...
  • u013564470
  • u013564470
  • 2017-10-30 18:51:23
  • 267

js调用c#方法

js调用前台嵌入的c#方法: 页面嵌入的c#方法如下:         public string TestJSToFunction(string strTest)     {    ...
  • luckysiesteven
  • luckysiesteven
  • 2014-02-20 16:23:06
  • 1905

c#执行javascript函数

先去http://www.microsoft.com/zh-cn/download/details.aspx?id=1154微软官网下载Windows Script Control,安装后添加MSSc...
  • cai742925624
  • cai742925624
  • 2014-03-06 10:26:36
  • 1422

ASP.NET中如何在前端ASP里面调用一个后台方法并传入参数

用三元表达式: sss":"sdasdsad" %>
  • lwcbest
  • lwcbest
  • 2014-07-24 17:09:34
  • 513

asp.net前台调用后台方法传参数

方法一:前台调用后台方法传参数function Show(){var Keys=0;var a="";  //调用后台变量 }public string strid = "000";  public ...
  • tiger00598
  • tiger00598
  • 2009-07-09 10:54:00
  • 7490

C# JS调用后台带参数方法

function Init() { var v = "中国"; var s = ''; alert(s); } protected string CsharpV...
  • huangguiming
  • huangguiming
  • 2012-01-09 22:05:46
  • 4476

asp.net js调用后台带参数的函数 .

解决方案:将js需要调用的后台函数,放到一个 前台按钮单击事件中,用js模拟单击事件,达到调用的目的!传值用隐式控件!  [csharp] view plaincopyprint...
  • lybwwp
  • lybwwp
  • 2012-08-25 16:06:28
  • 2186
收藏助手
不良信息举报
您举报文章:asp.net中前台JavaScript库调用后台C#变量和有参函数方法
举报原因:
原因补充:

(最多只允许输入30个字)