首页 新闻 会员 周边

有什么方法可以把JS的变量值传递给.net后台代码

0
悬赏园豆:60 [已关闭问题] 关闭于 2016-04-18 10:24

QuestionList 是用Viewbag从服务器端传过来的一个List集合,想用JS变量num对其进行筛选,但是服务器端的代码不能识别JS变量num。

知北游z的主页 知北游z | 初学一级 | 园豆:9
提问于:2016-04-12 09:34
< >
分享
所有回答(11)
0

这就需要使用ajax了

你在后台写个方法通过num获取QuestionName

然后使用ajax去调用就实现了

你这样写是实现不了的

刘宏玺 | 园豆:14020 (专家六级) | 2016-04-12 09:41
3

设计问题,提供两种参考:

1、ajax重新去请求数据;

2、客户端筛选;

幻天芒 | 园豆:37175 (高人七级) | 2016-04-12 09:46
0

你把前端和服务器端搞混了吧。

针对你的问题:有什么方法可以把JS的变量值传递给.net后台代码

需要对服务器端发起请求。

写代码的小2B | 园豆:4371 (老鸟四级) | 2016-04-12 10:15
0

这是典型的早期WEB开发用户,分不清啥是前端啥是后端,我也是一段时间后才突然明白了。

 

记住一点,

javascript在浏览器运行,这时候已经没有NET啥事情了,所有的NET代码已经转换为前端的HTML和JS了。

 

解决方案:

按照幻天芒说的。

爱编程的大叔 | 园豆:30839 (高人七级) | 2016-04-12 10:26
0

序列化 反序列化 

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2016-04-12 10:47
0

不行的,js控制不住C#代码,即使你在JS中的判断为false也会执行false中的代码,亲身体会

lb1208 | 园豆:371 (菜鸟二级) | 2016-04-12 21:39
0

你可以把服务端对象生成一个js数组对象,然后用js访问。也就是生成一堆js代码来构建这样一个数组。

至少没办法混写的。

空明流光 | 园豆:106 (初学一级) | 2016-04-13 10:04
1

把QuestionList转为Json,用each去循环,再用Num来对应。

知北游z | 园豆:9 (初学一级) | 2016-04-18 10:23
0

可以拐个弯,试一下用JS去调用C#的函数,该函数可以进行传参

Tomorrow0_0 | 园豆:202 (菜鸟二级) | 2016-04-20 16:50
0

 

举例:

<script type="text/javascript">
$(function () {

var data = { "action": "getumenguuid" };

$.ajax({
type: "POST",
url: "ashxpub/pushHandler.ashx",
async: false,
data: data,
dataType: "json",
error: function (x, r, e) {
if (r == "parsererror") {
window.top.location = '/Login.html';
return false;
}
alert('通讯失败');
return false;
},
success: function (result) {
if (result.totalcount <= 0) {
$.messager.alert("加载信息失败", "warning");
return false;
}
var bulidhtml = new StringBuilder();
bulidhtml.appendFormat("<div class=\"checkbox-bar\" >");

//jqery循环
$.each(result, function (k, v) {
bulidhtml.appendFormat("<label><input type=\"checkbox\" name=\"ckusertype\" value=\"{0}\">{1}</label>", v.uuid, v.name);
});
bulidhtml.appendFormat("</div>");
$("#tdagent").prepend(bulidhtml.toString());
return true;
}
});


}); 

</script>

 

C#hanlder.ashx代码组装一个json对象数组:

private string GetUmengUuid()
{
JArray arr = new JArray();
Dictionary<string, string> dicUmeng = SiteInfo.GetUmengPush;
foreach (KeyValuePair<string, string> pair in dicUmeng)
{
JObject obj = new JObject();
obj["uuid"] = pair.Key;
obj["name"] = pair.Value;
arr.Add(obj);
}
return arr.ToString();


}

_劍客 | 园豆:94 (初学一级) | 2016-04-22 18:28
0

前台代码:

  如你的 var models= eval(“@Newtonsoft.Json.JsonConvert.SerializeObject(view.bag)”);

  试试。

  这样就把你后台List转换为了js对象

小小高 | 园豆:1095 (小虾三级) | 2016-04-29 12:01

这个问题已经解决很久了,不过你的做法跟我的解决方法很像,只不过我是用list集合的一个扩展方法ToJson()转换的

支持(0) 反对(0) 知北游z | 园豆:9 (初学一级) | 2016-04-29 13:01

@fhey: 嗯。。

支持(0) 反对(0) 小小高 | 园豆:1095 (小虾三级) | 2016-04-29 13:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册