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();
}
展开
 我来答
mikejodden
2013-05-29 · TA获得超过384个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:277万
展开全部
首先,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,你可以自己修改符合你的要求
更多追问追答
追问
补充问题如上,后台在转换时出错如何解决?
追答
已回答,请参考
stydfans
2013-05-29 · TA获得超过668个赞
知道小有建树答主
回答量:1263
采纳率:100%
帮助的人:512万
展开全部
使用js对页面上的HiddenField控件的value属性赋值,然后,后台读取这个HiddenField控件的value值,转换成Int32类型的即可。
更多追问追答
追问
补充后台代码如上,在强制转换时出错是什么情况?
追答
那是因为i值是空的,按照我说的,使用js对前台的HiddenField的Value赋值,

如 document.getElementById("Hd1").value = 5;

后台: m = Convert.ToInt32(Hd1.value.Tostring()); //出错,无法转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
色表哥
2013-05-29 · TA获得超过190个赞
知道答主
回答量:133
采纳率:100%
帮助的人:21.7万
展开全部
ajax 或者 往服务器控件写值 或者Url传值 js中没有明确规定数据类型 var 在后台转就好了
追问
ajax怎么用?没有接触过,能给个示例吗?
追答
可以参照jquery api
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hawkeyes0
2013-05-29 · TA获得超过600个赞
知道小有建树答主
回答量:484
采纳率:0%
帮助的人:143万
展开全部
把变量存到一个asp:hidden里面,后台去取来用就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
snake2732316
2013-05-29 · 超过19用户采纳过TA的回答
知道答主
回答量:64
采纳率:85%
帮助的人:18.7万
展开全部
你能确定i这个值从前台已经传进来了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式