asp.net 使用javascript如何向后台传入一个int型的变量呢?
后台代码:(前台传入string类型,强制转换出错)publicstringgetstring(stringi){intm=0;if(i!=null){m=Convert...
后台代码:(前台传入string类型,强制转换出错)
public string getstring(string i)
{
int m = 0;
if (i != null)
{
m = Convert.ToInt32(i); //出错,无法转换
m = m + 7;
}
return m.ToString();
} 展开
public string getstring(string i)
{
int m = 0;
if (i != null)
{
m = Convert.ToInt32(i); //出错,无法转换
m = m + 7;
}
return m.ToString();
} 展开
5个回答
展开全部
首先,javascript是弱类型语言,不存在int,string这些强类型语言里才有的变量类型说法,比如var a=1;也可以var a="1";如果你后台需要一个int值,最保险就是双重判断,即前台后台都判断,传之前就用javascript中的isNaN()函数判断是不是数字,当然也可以用正则判断,后台也判断到底是不是int型,做到万无一失
代码出错只可能是i不是整数,参考下面代码
public string getstring(string i)
{
int temp = 0;
if (string.IsNullOrEmpty(i))
{
//字符串为空或null
}
else
{
if (int.TryParse(i, out temp))
{
//转换成功,即可以转换成int
}
else
{
//不能转换
}
}
return temp.ToString();
}
这样,不能转换返回的是0,你可以自己修改符合你的要求
代码出错只可能是i不是整数,参考下面代码
public string getstring(string i)
{
int temp = 0;
if (string.IsNullOrEmpty(i))
{
//字符串为空或null
}
else
{
if (int.TryParse(i, out temp))
{
//转换成功,即可以转换成int
}
else
{
//不能转换
}
}
return temp.ToString();
}
这样,不能转换返回的是0,你可以自己修改符合你的要求
更多追问追答
追问
补充问题如上,后台在转换时出错如何解决?
追答
已回答,请参考
展开全部
使用js对页面上的HiddenField控件的value属性赋值,然后,后台读取这个HiddenField控件的value值,转换成Int32类型的即可。
更多追问追答
追问
补充后台代码如上,在强制转换时出错是什么情况?
追答
那是因为i值是空的,按照我说的,使用js对前台的HiddenField的Value赋值,
如 document.getElementById("Hd1").value = 5;
后台: m = Convert.ToInt32(Hd1.value.Tostring()); //出错,无法转换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ajax 或者 往服务器控件写值 或者Url传值 js中没有明确规定数据类型 var 在后台转就好了
追问
ajax怎么用?没有接触过,能给个示例吗?
追答
可以参照jquery api
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把变量存到一个asp:hidden里面,后台去取来用就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你能确定i这个值从前台已经传进来了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询