我试图在 App_Code 目录下有一个 index.aspx 文件,该文件将接收ajax执行的api调用。
示例:
(这只是一个 App_Code 目录,下面有1个 index.aspx 文件。最后,有一个 index.html 主页的此目录之外的文件。)
index.aspx代码前端
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="WebApplication4.index" runat="server" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Index page</title>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>
index.aspx代码背后:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication4
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
String strAPI = Request.Form["api"];
switch(strAPI)
{
case "test":
Response.Write("It worked!");
break;
}
//lstTest.Items.Add("test");
}
}
}
index.html代码
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
window.onload = function () {
$.ajax({
url: 'App_Code/',
data: 'api=test',
dataType: 'text',
type: 'POST',
contentType: 'application/x-www-form-urlencoded',
success: function (data)
{
debugger;
},
error: function (data, status)
{
debugger;
}
});
};
</script>
</head>
<body>
<h2>TEST</h2>
</body>
</html>
我之前已经开始工作了(但不记得是怎么回事)。我收到的错误是&#39; IIS 10.0详细错误 - 404.8 - 未找到&#39;在ajax调用的错误事件中。基本上它从未进入 index.aspx 文件的页面加载方法。
答案 0 :(得分:0)
你好在ajax调用中尝试更改url如: url:'App_Code / Index.aspx / Page_Load' 我不确定这是不是答案,但试试吧。
答案 1 :(得分:0)
从截图中看,您的项目类型似乎是网络应用程序,而不是网站。
首先,不要将App_Code
文件夹用于Web应用程序项目。它旨在用于网站项目,以放置未附加到页面的代码文件(即不是代码隐藏)。在Web应用程序项目中,您可以将代码文件放在任何位置,因此不需要App_Code
文件夹,也不提供特殊功能。你仍然可以像任何其他文件夹一样使用它,但建议使用更好的命名文件夹。
因此,您应该避免将aspx页面放在App_Code
文件夹中,因为它令人困惑,在Web应用程序项目中毫无意义。为此使用更好的命名文件夹。出于这个原因,我将不会发布一个解决方案来使其工作,因为你不应该首先这样做。
相反,将App_Code
文件夹重命名为有意义的内容,比如API
,然后在Ajax中使用该名称,如/api
。