不通过服务器控件时用前端javascript与c#后台交互的方法

一,如果通过前台javascript调用后台aspx里面的函数?

实现某个功能不同的思路会用不同的实现方法,本章仅做抛砖引玉用
方法一、参考本博客前文“WebForm实现实时信息提醒功能(Timers与Ajax实现及优劣浅析)”方法二,通过AjaxPro直接调用,里面重点是:
             1、在后台Load的时候可以注册你的后台类,例如:AjaxPro.Utility.RegisterTypeForAjax(typeof(MyClass));
              2、然后注册你的方法

[csharp] view plain copy

print?

  1. [AjaxPro.AjaxMethod]
  2. public string GetUrl()
  3. {
  4. ....
  5. }

3、最后前台直接调用就可以了,例如: var str = MyClass.GetUrl().value;

为了表述方便,现在假设引入一个button。那么可以在后台将需要调用或处理的内容写入button_click中;然后在前台写一个js函数,内容为document.getElementById("btn1").click();此函数目的是实现调用后台写好的函数,激发c那个lick事件;
方法二、前台调用如下js代码,含一个隐藏域,目的是触发既定的函数

[javascript] view plain copy

print?

  1. <script language="javascript">...
  2. function SubmitKeyClick()
  3. ...{
  4. if (event.keyCode == 13)
  5. ...{
  6. event.cancelBubble = true;
  7. event.returnValue = false;
  8. document.all.FunName.value="你要调用的函数名";
  9. document.form[0].submit();
  10. }
  11. }
  12. </script>
  13. <input onclick="SubmitKeyClick()" id="aaa" type="button">
  14. <input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉

然后.cs页面的代码如下

[csharp] view plain copy

print?

  1. public Page_OnLoad()
  2. {
  3. if (!Page.IsPost())
  4. {
  5. string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";//根据传回来的值决定调用哪个函数
  6. switch(strFunName)
  7. {
  8. case "enter()":
  9. enter() ; //调用该函数
  10. break;
  11. case "其他":
  12. //调用其他函数
  13. break;
  14. default:
  15. //调用默认函数
  16. break;
  17. }
  18. }
  19. }
  20. public void enter()
  21. {
  22. //……
  23. }

二,前台静态页面获取后台函数的变量

方法一:通过页面上隐藏域访问,比如可以放一个隐藏控件,在后台根据条件给其附值,在前台JS里判断其值并根据其值弹出

[html] view plain copy

print?

  1. <input id="xx" type="hidden" runat="server">

方法二:如后台定义了public;然后前台js中引用该变量的格式为‘<%=n%>‘或"+<%=n%>+"
方法三:或者你可以在服务器端变量赋值后在页面注册一段脚本,然后前端js会自动获取
             "<script language=‘javascript‘>var temp=" + tmp + "</script>"
             tmp是后台变量,然后js中可以直接访问temp获得值。

三,c# .cs页面通过javascript得到静态页面的变量

方法一:最简单也是最用用的,通过cookie或session或许值,然后保存在服务器端。
方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中;
                2、后台用request["id"]来获取值,列如

[csharp] view plain copy

print?

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. if (!Page.IsPostBack)
  4. {
  5. unInclude = Request.QueryString["uninclude"];
  6. //...
  7. }
  8. }
  9. private string unInclude
  10. {
  11. set
  12. {
  13. ViewState["unInclude"] = value;
  14. }
  15. get
  16. {
  17. if (ViewState["unInclude"] == null)
  18. return "";
  19. return ViewState["unInclude"].ToString();
  20. }
  21. }

四,C# .cs页面调用访问javascript的函数

方法一:最简单也是最方便的,通过page类,直接调用:

[csharp] view plain copy

print?

  1. Page.RegisterStartupScript("ggg","<script>SetVisible(1);</script>");

方法二:使用Literal类,然后直接在后台写要调用的js函数名或者函数方法,例如:

[csharp] view plain copy

print?

  1. private void Button2_Click(object sender, System.EventArgs e)
  2. {
  3. string str;
  4. str="<script language=‘javascript‘>";
  5. str+="selectRange()";
  6. str+="</script>";
  7. //Literal1.Visible=true;
  8. Literal1.Text=str;
  9. }
时间: 2024-10-10 00:15:42

不通过服务器控件时用前端javascript与c#后台交互的方法的相关文章

Fundebug前端JavaScript插件更新至1.8.2,修复2个小BUG

摘要: 修复2个BUG,请大家及时更新. Fundebug前端异常监控服务 Fundebug是专业的程序异常监控平台,我们JavaScript插件可以提供全方位的异常监控,可以帮助开发者第一时间定位各种前端异常,包括: JavaScript执行错误 资源加载错误 HTTP请求错误 unhandledrejection WebSockect连接错误 并且,我们可以记录用户行为."录制"用户操作视频,帮助开发者快速复现BUG,提高Debug效率. Fundebug前端异常监控插件更新至1.

八大前端JavaScript趋势和工具

JavaScript的世界正在快速发展. 前端开发(和网络开发)的世界正在以极快的速度发展.如今,如果不借助前端或Webpack.React Hooks.Jest.Vue和NG元素,你会很快被远远抛下.不过,情况正在发生改变. 尽管开发人员和技术人员在前端领域中的数量逐年上升,生态系统却有标准化的趋势.新技术和工具的出现正在改变当下的规则. 总体趋势肯定会是一种基于组件构成的用户界面标准化,会影响从样式到测试甚至状态管理的所有方面,并且总体具有更好的模块度.这将包括围绕web组件.ES模块.组件

好程序员web前端分享前端javascript练习题一

好程序员web前端教程将会为大家持续分享前端javascript练习题系列.Math 对象 1.编写一个函数,获得一个十六进制的随机颜色的字符串(例如:#20CD4F)方法:function f2(){var str="0123456789abcdef";var color="#";for(var i=0;i<6;i++){var num=Math.floor(Math.random()*str.length);color=color+str[num];}co

好程序员web前端教程分享前端javascript练习题之promise

好程序员web前端教程分享前端javascript练习题之promisepromise-ajax的封装function ajax(url){//创建promise对象var promise = new Promise(function(resolve,reject){//创建ajax对象if(window.XMLHttpRequest){var xhr = new XMLHttpRequest();}else{var xhr = new ActiveXObject("Microsoft.XMLH

nodejs 和web前端JavaScript什么区别

web前端javascript组成: ECMAScript,(是js的标准,js是它的具体实现和扩展,它描述语言的语法和基本对象,如:语法,运算符,语句,继承机制,数据结构以及一些内置对象) DOM(文档对象模型),描述处理网页内容的方法和接口,将整个文档document解析成dom树供用户使用js对文档进行处理. BOM(浏览器对象模型),描述可以和浏览器窗口交互的方法和接口(对象结构),如:window对象,history.location.navigator等. nodejs除了语言基础E

基于七牛API开发的前端JavaScript SDK

这是我们工程实践的内容,由于时间原因,具体不赘述,啊~主要还是因为懒o(╯□╰)o工程实践的题目为openedx后端管理系统的功能拓展与优化,我们要优化的一个主要功能便是实现视频本地化上传,我们采用的视频云服务商为七牛云存储,以下链接是基于它的API开发的前端JavaScript SDK,http://developer.qiniu.com/docs/v6/sdk/javascript-sdk.html我的任务是看完,找到需要改的参数,刚刚大概看了一下,很多东西不是很明白,先把我觉得需要改的参数

前端javascript模板

doT.js——前端javascript模板引擎问题备忘录 我手里维护的一个项目,遇到一个问题:原项目的开发人员在Javascript中,大量的拼接HTML,导致代码极丑,极难维护.他们怎么能够忍受的了这么丑陋.拙劣的代码呢,也许是他们的忍受力极强,压根就没想去寻找解决方法. 可是,我,是万难不能接受这种丑陋的解决方式的.有没有优雅的解决方法呢,于是在网上搜索到了doT.js. 主页很简洁,就一个页面,研究了一下,就顺利的上手了,相当的简单易用.主要分两步走. 1.写模板 写模板,就用官方文档里

菜鸟学前端--javascript基础

在学习过css相关的知识,有了前端工程师的一些基础知识.但要较好的掌握前端,必须要学习好javascript的知识. 下面将从基本语法.变量.关键字.保留字.语句.函数.BOM等角度阐释. 一.基本语法 javacript作为一种面向对象的.脚本级的轻量语言,与java一脉相承. 命名:区分大小写,弱类型定义(一般采用var,不限制类型). 行末分号可有可无(从经验上来看,推荐写,可以提高代码阅读质量). 括号用于代码段. 注释与C.java类型,单行用"//",段注释用"/

JAVA后台与前端JAVASCRIPT之间AES加密解密互通

调试了一天终于把java后台与javascript之间的AES加密解密成功了,记录一下过程. 后台java解密代码:解码算法及模式为 AES/CBC/PKCS5Padding key与iv要为16位 得到16的字符数组按照16进制编码转化为字符串 public static String encrypt(String content, String key) throws Exception { try { Key keySpec = new SecretKeySpec(key.getBytes