我基本上是尝试将我的javascript函数中的一些测试值发送到ASP.NET Web窗体页面中的Page_Load方法。
但是,在调试时,我注意到请求数据为空,没有通过条件。
代码:
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;
}
}
知道为什么没有从后面的代码中收到数据?这是一个非常简单的例子,我想知道为什么。
答案 0 :(得分:0)
&#34;的Request.Form [&#34;数据&#34;]&#34;最初为null,因为&#39;数据中没有值。 但是当你打电话给&#34; test.aspx&#34;在ajax方法上,它再次调用pageload事件并将Request.Form [&#34; data&#34;]重置为null。
除此之外,您应该创建一个Web方法并在senddata()函数中调用该方法。
答案 1 :(得分:0)
感谢您的所有回复!我设法通过进行以下更改来修复它:
在〜/ App_Start / RouteConfig.cs
内我改变了:settings.AutoRedirectMode = RedirectMode.Permanent;
要
settings.AutoRedirectMode = RedirectMode.Off;
这解决了这个问题。我不知道这种配置是如何进入的。我在创建项目时将其添加到RouteConfig中。希望这有助于某人。