[英]Can i pass web method parameter like query string?
Here i am using a webmethod 'InsertData'. 在这里,我使用webmethod'InsertData'。 Can I pass parameters like query string["json.aspx/InsertData?username="+name+"......"]
instead of passing as data
? 我可以传递查询string["json.aspx/InsertData?username="+name+"......"]
而不是传递data
吗? Is there any advantages if I use like query string. 如果我使用像查询字符串一样有什么好处。
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "json.aspx/InsertData",
data: "{'username':'" + name + "','subj':'" + subject + "','desc':'" + body + "'}",
dataType: "json",
success: function(data) {
var obj = data.d;
if (obj == 'true') {
$('#txtname').val('');
$('#txtsubject').val('');
$('#txtbody').val('');
$('#lblmsg').html("Details Submitted Successfully");
}
},
error: function(result) {
alert("Error");
}
});
I'm thinking in 2 disavantages: 我在考虑2个不利因素:
Request Limits
is exceed by the lenght of URL. 如果Request Limits
超过URL的长度,IIS将返回404.14。 To pass a query string to Webmethod do the following: 要将查询字符串传递给Webmethod,请执行以下操作:
You have to set up the URL with the query string parameters 您必须使用查询字符串参数设置URL
You have to get this parameters at server side getting them from Request
object. 您必须在服务器端获取此参数,从Request
对象获取它们。
client side 客户端
var url = "json.aspx/InsertData?username=" + name + "&subj=" + subject + "&desc=" + body;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: url,
dataType: "json",
success: function(data) {
var obj = data.d;
if (obj == 'true') {
$('#txtname').val('');
$('#txtsubject').val('');
$('#txtbody').val('');
$('#lblmsg').html("Details Submitted Successfully");
}
},
error: function(result) {
alert("Error");
}
});
At the server side you have to inspect the Request
object: 在服务器端,您必须检查Request
对象:
[WebMethod(EnableSession=true)]
public static object InsertData()
{
var name = HttpContext.Current.Request.QueryString["username"];
var subject = HttpContext.Current.Request.QueryString["subject"];
var desc = HttpContext.Current.Request.QueryString["desc"];
// Do some work
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.