高手帮忙 js调用C#方法 当天结帖

happy664618843 2009-12-19 01:12:42


function UserLogin()
{

b=document.getElementById('txtname').value;
c=document.getElementById("txtpwd").value;
var n=document.getElementById("name").value=b;
var m= document.getElementById("pwd").value=c;

var a="<%=Login()%>";
alert(a);
if(a==true)
{
alert('登录成功!');
}
else
{
alert('登录失败!');
}
}
</script>



用户名:<input type='text' id="txtname"/>
密 码:<input type="password" id="txtpwd" />
<input type='button' value='登 录' onclick='UserLogin()'/>
<asp:HiddenField ID="name" runat="server"/>
<asp:HiddenField ID="pwd" runat="server" />

asp.net后台代码:

public bool Login()
{
bool f = false;

if (name.Value == "admin")
{
f = true;
}
else
{
f = false;
}

return f;
}


用户名输入admin 时应该返回true 为什么返回总是false 不管输入是admin还是输入其它值总是alert出false 当我输入admin则登录成功!高手怎么解决? 调试时候隐藏域中有值! 谢谢
...全文
148 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
rendehua380 2009-12-19
  • 打赏
  • 举报
回复

if("<%=Login() %>")
{
alert('登录成功!');
}
else
{
alert('登录失败!');
}
xiedu414 2009-12-19
  • 打赏
  • 举报
回复
js代码是客户端执行, 而是服务端执行<%= %> 楼主是写法实际是在第一次请求页面的时候就执行了
后台的Login()方法 将它赋值给js的变量,也就是说js的变量实际已经变成了一个固定的值,而不是真正
的服务端执行后再传回来的值。lz的思路有些偏差。不知道你到底要做什么效果,如果是要无刷新登录
提示,还不如做成AJAX来的省事,毕竟有现成的AJAX控件。
bulenghai 2009-12-19
  • 打赏
  • 举报
回复
呵呵,以前我遇到这种问题是靠AjaxPro解决的,LZ如果有兴趣可以看一下。
shen020453 2009-12-19
  • 打赏
  • 举报
回复
这个只是个思路。
happy664618843 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 shen020453 的回复:]
用Ajax
如:

var xmlHttpRequest = null;

function UserLogin()
{
var url = "Asp.aspx" ; // URL
// IE only.
xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.onreadystatechange = onReadyStateChange;
xmlHttpRequest.open("GET", url, true);
xmlHttpRequest.send(null);
}

function onReadyStateChange()
{
if (xmlHttpRequest.readyState == 4)
{
if (xmlHttpRequest.status == 200)
{
var a = xmlHttpRequest.responseText;
}
}
}
[/Quote]
.............. 用ajax 那就不用发帖子了
shen020453 2009-12-19
  • 打赏
  • 举报
回复
public bool Login()
{
bool f = false;

if (name.Value == "admin")
{
Response.Write(true);
}
else
{
Response.Write(false);
}
}

shen020453 2009-12-19
  • 打赏
  • 举报
回复
用Ajax
如:

var xmlHttpRequest = null;

function UserLogin()
{
var url = "Asp.aspx" ; // URL
// IE only.
xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.onreadystatechange = onReadyStateChange;
xmlHttpRequest.open("GET", url, true);
xmlHttpRequest.send(null);
}

function onReadyStateChange()
{
if (xmlHttpRequest.readyState == 4)
{
if (xmlHttpRequest.status == 200)
{
var a = xmlHttpRequest.responseText;
}
}
}
zhenglianghui 2009-12-19
  • 打赏
  • 举报
回复
你放一个按钮。触发这个按钮--abc--的时间。在使用document.getElementById("abc").onclick();就可以调用这个按钮的事件,就行呢。
zhenglianghui 2009-12-19
  • 打赏
  • 举报
回复
楼主写的思路有问题。放在js里面的<%=%>页面运行就加载这个方法。就返回false。我以前也遇到这样的问题。帮你顶。
happy664618843 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ytc666 的回复:]
因为只是客户端的值为admin,并没有回发到服务端
[/Quote]
没有回发到服务端? 怎么解决? 分不够可以加
happy664618843 2009-12-19
  • 打赏
  • 举报
回复
如果用后台那我就不用测试了 ..........
shelless 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ytc666 的回复:]
因为只是客户端的值为admin,并没有回发到服务端
[/Quote]

同意
zgke 2009-12-19
  • 打赏
  • 举报
回复
var a="<%=Login()%>";
到客户端 就已经是false了 ..


<input type='button' value='登 录' onclick='UserLogin()'/> 直接换成后台的把.
ytc666 2009-12-19
  • 打赏
  • 举报
回复
因为只是客户端的值为admin,并没有回发到服务端
happy664618843 2009-12-19
  • 打赏
  • 举报
回复
用ajax我也会写 我只想测试下用js调用后台方法 测试登录
qq18527575 2009-12-19
  • 打赏
  • 举报
回复
用Ajax吧!
如果楼主采纳的话,我现在就写

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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