C# 前台怎么去调用后台的方法

unling 2009-09-12 03:01:26
后台我定义了一个方法
 public string CsharpVoid()
{
string data1 = TextBox1.text; //页面上的控件
string data2 = TextBox2.text; //页面上的控件
string data3 = returnResult(data1, data2);//去进行一些复杂的逻辑计算的方法
return strCC; //返回结果
}

前台js中去调用这个方法
function Init()
{
document.getElementById('TextBox1').value="某个值"

var strvalue=CsharpVoid(); //这里调用后台的CsharpVoid方法 我这里写的当然是不对的。请大家帮忙

if(strvalue=="某个值")
{
//控制页面上的一个div不显示
}
else
{
//恢复显示这个div
}
}
请问怎么调用CsharpVoid()方法并接受其返回的值?
...全文
975 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjiafeng2008 2009-09-12
  • 打赏
  • 举报
回复
有那么复杂吗?可以在页面上加个属性,CsharpVoid去给这个值赋值,不过得在pageload执行,然后<%=%>去取值,如果js和.aspx分离,可以放到一个隐藏域里,然后取隐藏域的值
24K純帥 2009-09-12
  • 打赏
  • 举报
回复
顶下吧,还是很有意思的问题
wuyq11 2009-09-12
  • 打赏
  • 举报
回复
var strvalue="<%=CsharpVoid()%>";
或_doPostBack('','');
或ajax异步调用
chen_ya_ping 2009-09-12
  • 打赏
  • 举报
回复
AJAX不管能进行webservice的调用,同时也可以进行后台方法的调用。更多的信息可以去参考asp.net ajax
mxc1225 2009-09-12
  • 打赏
  • 举报
回复
Ajax请求!!
悔说话的哑巴 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 lgnhhhwgq 的回复:]
我说的方法是基于前后台代码都可以访问页面控件的值的原理
[/Quote]
什么意思?
lgnhhhwgq 2009-09-12
  • 打赏
  • 举报
回复
我说的方法是基于前后台代码都可以访问页面控件的值的原理
lgnhhhwgq 2009-09-12
  • 打赏
  • 举报
回复
我倒是有一个方法,楼主不妨试一试:在界面中放一个button 长度为0宽度为0(id为btn):把你的

string data1 = TextBox1.text; //页面上的控件
string data2 = TextBox2.text; //页面上的控件
string data3 = returnResult(data1, data2);//去进行一些复杂的逻辑计算的方法

放到这个button的click事件中,并不用返回值 而是把那个返回值写到一个隐藏的界面控件中(id为 hdn),你再用
document.getElementById("btn").click();触发这个 ,再用你的
strvalue =document.getElementById("hdn").value
skiasky 2009-09-12
  • 打赏
  • 举报
回复
服务器怎么会允许js去直接执行它的方法?如果这都行,就没有安全性了。
不过看起来,似乎你那个字段并不重要,只是控制下某个div的现实和隐藏,如果不设计到权限等问题,
建议用个hiddenfield什么的控件,先在页面接受下数据。然后再用js去读取这个控件的信息。
yongyupost2000 2009-09-12
  • 打赏
  • 举报
回复
象这种调用只能用Ajax调用,别无它法:

  • 打赏
  • 举报
回复
楼主首先下载Ajax.NET Professional
1添加引用 AjaxPro
2配置Web.config
<system.web>
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
</system.web>
3修改服务端方法,使用[AjaxPro.AjaxMethos]进行申明
4在相应的CS文件中的Page_Load方法中注册客户端JS要调用Ajax方法
AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));
xigl0727 2009-09-12
  • 打赏
  • 举报
回复
<%@ WebHandler Language="C#" Class="LoginValidate" %>

using System;
using System.Web;
using WebBLL.hyjf;
using System.Text.RegularExpressions;

public class LoginValidate : IHttpHandler {

hyjfBLL userdal = new hyjfBLL ();

public void ProcessRequest (HttpContext context)
{

string username=context.Request.QueryString["divusername"].ToString();

username = context.Request.QueryString["divusername"].ToString();
checkusername(context, username);
这是一个函数,处理前台数据的
unling 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xigl0727 的回复:]
            这是回调方法
            function ShowResult()
            {
                if(xmlHttp.readyState==4)
                {
                    if(xmlHttp.status==200)
                    {
                        document.getElementById("divusername").innerHTML=xmlHttp.responseText;
                    }
                }
不过我的作用和你的好像不太一样,不过方法应该差不多

            }
[/Quote]
请把 LoginValidate.ashx 中的代码贴出来给我看看 谢谢
unling 2009-09-12
  • 打赏
  • 举报
回复
我去试试
xigl0727 2009-09-12
  • 打赏
  • 举报
回复
这是回调方法
function ShowResult()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
document.getElementById("divusername").innerHTML=xmlHttp.responseText;
}
}
不过我的作用和你的好像不太一样,不过方法应该差不多

}
unling 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xigl0727 的回复:]
这就是方法,不知你会不会用了
[/Quote]
会一点 ShowResult
里边的内容贴出来给我看看 谢谢
unling 2009-09-12
  • 打赏
  • 举报
回复
请问楼上的
ShowResult
里边的内容贴出来给我看看 谢谢
xigl0727 2009-09-12
  • 打赏
  • 举报
回复
这就是方法,不知你会不会用了
wuyi8808 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 unling 的回复:]
你的意思是后台不能
string data1 = TextBox1.text;            //页面上的控件
string data2 = TextBox2.text;            //页面上的控件
这样去取的值了 得接受传递过来的参数吗?
不但需要ajax还需要webservice吗?

[/Quote]

在后台中这样是可以的:
string data1 = TextBox1.Text; //页面上的控件
string data2 = TextBox2.Text; //页面上的控件

只要在后台的 .cs 文件中声明:
public TextBox TextBox1, TextBox2;


但前台 JavaScript 不能像你那样直接调用后台的。
xigl0727 2009-09-12
  • 打赏
  • 举报
回复
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}

}
//处理方法
function CheckUserName(txt,divid)
{
var username = document.getElementById("txtusername").value;
createXMLHttpRequest();
var url = "LoginValidate.ashx?divusername="+document.getElementById("txtusername").value;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=ShowResult;
xmlHttp.send(null);
}
加载更多回复(3)

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧