如何在不使用隐藏字段的情况下访问c#代码中的javascript变量

时间:2017-12-13 05:27:54

标签: javascript c# jquery asp.net

我将数据存储在变量中并将其传递给txt_val属性,存储为'tooltip'。我想在我的c#代码中访问它,我该怎么办?

function closediv(val1, txt_val, grp) {
    var data = val1.split("!~!");
    var value1 = data[0];
    $("#" + txt_val).attr('tooltip', value1);            
}

我知道可以使用隐藏字段来完成,但是会检查多个textbox控件的值,所以如果我使用隐藏字段控件,我需要为每个文本框使用一个隐藏字段,会导致很多重复的代码。我有更好的方法吗?谢谢

1 个答案:

答案 0 :(得分:1)

您可以创建一个包含所有' textbox`控件中的值的对象,并将其转换为隐藏字段,方法是将其转换为JSON,如下所示

var extraData = {};

function closediv(val1, txt_val, grp) {
  var data = val1.split("!~!");
  var value1 = data[0];
  $("#" + txt_val).attr('tooltip', value1);
  extraData[txt_val] = value1;
  $('#hiddenFieldId').val(JSON.stringify(extraData));
}

然后在控制器上,你可以使用JSON.net反序列化这个JSON。

ExtraData extraDataObj = JsonConvert.DeserializeObject<ExtraData>(extraData);

此外,如果您希望在对extraData进行邮件化时大写对象的第一个字母,则可以使用here中的解决方案。