js中var到底是什么数据类型?

lijie__520 2009-10-10 10:58:27
我用js调用C#后台函数老是参数错误了。。。

郁闷啊

编译器错误信息: CS1502: 与“System.IO.TextWriter.Write(char)”最匹配的重载方法具有一些无效参数

源错误:



行 80: {
行 81: var v = obj;
行 82: var s =' <%=changearea("'+v+'") %>';
行 83: alert(s);
行 84: }
<--------------------------------------------------代码块--------------------------------------------->
<script>

function Init(obj)
{
var v = obj;
var s = ' <%=ss("'+v+'") %>';
alert(s);
}
</script>




<body onload="Init('aa') ">
<form id="form1" runat="server">
<div>

</div>
</form>
</body>

//后台代码
protected string ss(string str)
{

return str+1;
}

为什么这样可以


protected void changearea(string area)
{
bindData();

}

<script type="text/javascript">


function area(obj)
{
var v = obj;
var s =' <%=changearea("'+v+'") %>';
alert(s);
}
</script>
这样就报错??

...全文
2967 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
html 2012-08-15
  • 打赏
  • 举报
回复
知道了,我的少加单引号应该是 var s = '<%=doit("'+str+'") %>';
谢谢大神们。
html 2012-08-15
  • 打赏
  • 举报
回复
为什么我这样做就不行呢?
var s = '<%=doit("+str+") %>';
alert(s);
他直接就报这个错了.求帮助啊。。。。
  • 打赏
  • 举报
回复
var 是一个空间比较大的变量,在必要时可以转换成比较小内存的变量类型
c02645 2009-10-10
  • 打赏
  • 举报
回复
var s =' <%=changearea("'+v+'") %>';
这样都能JS调用后台的话,那无刷新回调函数还顶个P用啊?
c02645 2009-10-10
  • 打赏
  • 举报
回复
function area(obj)
{
var v = obj;
var s =' <%=changearea("'+v+'") %>';
alert(s);
}

var s =' <%=changearea("'+v+'") %>';
这个可行?开玩笑吧?
运行一次后你看html源码,
var s =' <%=changearea("'+v+'") %>'; 这句在html里变成了什么?是不是玩笑开大了,这样写都有?
zzxap 2009-10-10
  • 打赏
  • 举报
回复
var 就是随便的意思
yanm7788 2009-10-10
  • 打赏
  • 举报
回复
顶个...前面都说了
wartim 2009-10-10
  • 打赏
  • 举报
回复
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>

<script type ="text/javascript" >
function window.onload()
{
var v = "abc";
var s ='<%changearea("'+v+'");%>';
alert(s);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>

</div>
</form>
</body>
</html>


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

public void changearea(string s)
{
Response.Write(s+"!!!");
}
}
ztenv 2009-10-10
  • 打赏
  • 举报
回复
任意数据类型,
别递烟哥不会 2009-10-10
  • 打赏
  • 举报
回复
var是匿名类型额·,系统会在赋值后判断他的类型·
真相重于对错 2009-10-10
  • 打赏
  • 举报
回复
你要理解b/s,是怎么一个流程
你的代码有问题
b/s是客户端发起请求,服务器端接收后,执行代码,返回html + js ,客户端解析html 并执行js
你的代码
var v = obj; //这里是根据js 的动态内容 获取数据
行 82: var s =' <%=changearea("'+v+'") %>'; //这里的服务器代码(<%=..%>)早已经执行完毕而且你给的参数是错误的

lijie__520 2009-10-10
  • 打赏
  • 举报
回复
前面的第一个方法是可以行的啊??
xzq686 2009-10-10
  • 打赏
  • 举报
回复
var v = obj;
var s =' <%=changearea("'+v+'") %>';
有问题
v是客户端变量
<%=%>是服务器端变量..不能用服务器端的changearea()方法调用客户端变量
huwei001982 2009-10-10
  • 打赏
  • 举报
回复
var 是可变参数类型, 可以代表任何数据类型
lijie__520 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 c02645 的回复:]
var s =' <%=changearea("'+v+'") %>';
这样都能JS调用后台的话,那无刷新回调函数还顶个P用啊?
[/Quote]

楼上自己放到测试页面测试了再说

110,528

社区成员

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

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

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