Ajax POST数据未发送到ASP.NET中的Page_Load方法
Ajax POST Data not being sent to the Page_Load method in ASP.NET
我基本上是在尝试将一些测试值从javascript函数发送到ASP.NET Web Forms页面中的Page_Load方法。
然而,在调试时,我注意到Request数据为null,并且没有通过条件。
代码:
test.aspx
<form id="form1" runat="server">
<div>
<input type="button" onclick="senddata()" />
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
function senddata() {
var testdata = "checkcheck";
$.ajax({
type: 'POST',
url: '/test.aspx',
data: { "data": testdata},
success: function (msg) {
console.log(msg);
}
});
}
</script>
</form>
代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
//doesn't go beyond this when I click the button
if (!string.IsNullOrEmpty(Request.Form["data"]))
{
string resp = "working";
Response.Write(resp );
Response.End();
return;
}
}
知道为什么没有从代码后面接收到数据吗?这是一个非常简单的例子,我想知道为什么。
"Request.Form["data"]"最初为null,因为"data"中没有值。但当您在ajax方法上调用"test.aspx"时,它会再次调用pageload事件并将Request.Form["data"]重置为null。
相反,您应该创建一个web方法,并在senddata((函数中调用该方法。
感谢您的回复!我设法通过做以下更改来修复它:
内部~/App_Start/RouteConfig.cs
我更改了:settings.AutoRedirectMode = RedirectMode.Permanent;
至
settings.AutoRedirectMode = RedirectMode.Off;
这解决了问题。我不知道这个配置是怎么进来的。它是在我创建项目时添加到RouteConfig的。希望这能帮助到别人。
相关文章:
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- asp.net中的验证工具
- 同一文本框中的验证程序CPF e CNPJ(ASP.NET web应用程序)
- 为什么可以't我将数据从c#发送到asp.net中的Javascript文件
- 使用Jquery查找asp.net GridView中的所有复选框
- 如何删除Angular.js项目中的.NET
- 处理JavaScript中的net::ERR_CONTENT_LENGTH_MISMATCH错误
- 从 AngularJS 中的 .NET 控制器下载 PDF
- FF10中的.NET字段验证器已损坏
- Visual Studio 2013中全新的ASP.NET MVC 5 Web应用程序中的.NET和Java脚本异常
- 从Javascript中的.net DateTime JSON格式字符串中获取正确的日期值
- 执行ASP.Javascript中的.NET 1.1代码
- 这相当于PHP + javascript世界中的.net + flex
- 如何将JS中的复杂JSON转换为Silverlight中的.net类
- 引用ASP.JQuery中的.NET元素
- ASP.UpdatePanel中的.NET GridView直到第二次点击才更新
- MVC应用中的.net highcharts:显示唯一的值,但必须有很多
- 提交ASP.Jquery Remodal中的.NET表单