如果您不需要表单中的那些,那么只需在您的 JavaScript 中将它们设为变量即可。要输出它们,请通过JavaScriptSerializer
类对它们进行编码:
<%
// Presumably somewhere in your C# code...
JavaScriptSerializer serializer = new JavaScriptSerializer();
%>
<script>
var hid1 = <%= serializer.Serialize(valueForHid1) %>;
var hid2 = <%= serializer.Serialize(valueForHid2) %>;
</script>
(请参阅下面有关全局变量的注释。)
稍后使用它们:
$.ajax({
data:{
var1 : hid1,
var2 : hid2
}
);
全局变量:如图所示,hid1
最终hid2
成为全局变量(在大多数浏览器上,当您使用隐藏字段时也会这样做)。我建议不要使用全局变量,而是将所有内容包装在作用域函数中:
(function() {
var hid1 = <%= serializer.Serialize(valueForHid1) %>;
var hid2 = <%= serializer.Serialize(valueForHid2) %>;
// ....
$.ajax({
data:{
var1 : hid1,
var2 : hid2
}
);
})();
如果由于某种原因您必须使用全局变量,请仅使用一个:
var myOneGlobal = {
hid1: <%= serializer.Serialize(valueForHid1) %>,
hid2: <%= serializer.Serialize(valueForHid2) %>
};
稍后使用:
$.ajax({
data:{
var1 : myOneGlobal.hid1,
var2 : myOneGlobal.hid2
}
);
myOneGlobal
您可以使用序列化程序将整个对象图输出到一个变量(可能是):
<script>
var myOneGlobal = <%= serializer.Serialize(objectWithData) %>;
</script>