C# 当从AJAX调用服务器端方法时,显示500内部服务器
我的问题是,当我在ASP.NET C#中调用从AJAX到服务器端方法的数据时,此时在浏览器控制台中显示错误,即500内部服务器错误 这是我的客户端代码C# 当从AJAX调用服务器端方法时,显示500内部服务器,c#,jquery,asp.net,ajax,C#,Jquery,Asp.net,Ajax,我的问题是,当我在ASP.NET C#中调用从AJAX到服务器端方法的数据时,此时在浏览器控制台中显示错误,即500内部服务器错误 这是我的客户端代码 <label for="fname">Name</label> <input type="text" id="txt_name" placeholder="Your Name.."/> <label for="lname">EmailID</label> &l
<label for="fname">Name</label>
<input type="text" id="txt_name" placeholder="Your Name.."/>
<label for="lname">EmailID</label>
<input type="text" id="txt_emailID" placeholder="Your EmailID.."/>
<label for="lname">Subject</label>
<input type="text" id="txt_subject" placeholder="Your Subject.."/>
<label for="subject">Content</label>
<textarea id="txt_content" placeholder="Write content.." style="height:200px"></textarea>
<input type="submit" id="submit_mail" value="Send"/>
<script>
$(function () {
$("#submit_mail").click(function () {
$.ajax({
type: "POST",
url: "contact.aspx/SendMail",
data: "{name: $('#txt_name').val(), email: $('#txt_emailID').val(), subject: $('#txt_subject').val(), message: $('#txt_content').val()}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
});
});
function OnSuccess(response) {
alert(response.d);
}
</script>
谢谢如果你转换一下,会更好 SendMail(字符串名称、字符串电子邮件、字符串主题、字符串消息) 进入SendMail(电子邮件)
如果你改信的话会更好 SendMail(字符串名称、字符串电子邮件、字符串主题、字符串消息) 进入SendMail(电子邮件)
步骤1:请按以下步骤尝试不带参数
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
protected void SendMail()
{
}
并从ajax中删除行:数据:“{name:$('txt_name').val(),电子邮件:$('txt_emailID').val(),主题:$('txt_subject').val(),消息:$('txt_content').val()”,
请尝试步骤1并检查是否仍有错误
步骤2:更新(保护为公共静态)
步骤3:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static void SendMail(string name)
{
}
并在ajax调用检查中立即更新添加
数据:“{name:$('#txt_name').val()}”
,步骤1:请按照下面的说明在没有参数的情况下进行尝试
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
protected void SendMail()
{
}
并从ajax中删除行:数据:“{name:$('txt_name').val(),电子邮件:$('txt_emailID').val(),主题:$('txt_subject').val(),消息:$('txt_content').val()”,
请尝试步骤1并检查是否仍有错误
步骤2:更新(保护为公共静态)
步骤3:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static void SendMail(string name)
{
}
并更新add
数据:“{name:$(''txt_name').val()}”
现在在ajax调用检查中WebMethod
应该是公共静态的
不受保护的
,因为我们不是从同一类/子类调用它
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static void SendMail(string name, string email, string subject, string message)
{
}
也尝试
data: JSON.stringify({name: $('#txt_name').val(), email: $('#txt_emailID').val(), subject: $('#txt_subject').val(), message: $('#txt_content').val()}),
而不是普通字符串。
WebMethod
应该是public static
而不是protected
,因为我们不是从同一类/子类调用它
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static void SendMail(string name, string email, string subject, string message)
{
}
也尝试
data: JSON.stringify({name: $('#txt_name').val(), email: $('#txt_emailID').val(), subject: $('#txt_subject').val(), message: $('#txt_content').val()}),
而不是纯字符串。您需要将脚本管理器控件添加到页面中,只有在添加它之后,web方法调用才能执行。您需要将脚本管理器控件添加到页面中,只有在添加它之后,web方法调用才能执行。这是您的实际C代码吗?还要注意,您发送的
数据
无效。最好删除字符串周围的引号,给jQuery一个对象,它可以自己序列化。是的,它只是实际的c代码。你能告诉我我的代码的语法吗?只要去掉你给数据的值周围的“
。然后你需要在C方法中加入一些逻辑,它生成一个有效的响应。我像这样做数据:{name:$('#txt_name')。val(),电子邮件:$('#txt_emailID').val(),主题:$('#txt_subject').val(),消息:$('#txt_content').val(),但同样的问题也会出现在删除引号后,您可以尝试在该对象上调用JSON.stringify。您的实际C#code是什么?还要注意,您发送的数据是无效的。您最好删除字符串周围的引号,并给jQuery一个可以序列化的对象t自己。是的,它只是实际的c代码。你能告诉我代码的语法吗?只要删除你给数据的值周围的“
。然后你需要在C方法中加入一些逻辑,生成一个有效的响应,我已经这样做了:{name:$('txt_name').val(),email:$('txt_emailID').val(),subject:$('txt_subject').val(),message:$('txt_content').val(),但在去掉引号之后,同样的问题也出现了,您可以尝试在该对象上调用JSON.stringify,但调用在转到ajax后没有进入sendmail方法,仅显示内部错误,但调用在转到ajax后没有进入sendmail方法,仅显示内部错误我已从受保护更改为公共,但也出现了相同的错误。很高兴帮助我更改了从受保护到公开,但同样的错误也会出现。很乐意帮助