繁体   English   中英

从ajax调用访问index.aspx文件(在App_Code中)?

[英]Accessing index.aspx file (in App_Code) from ajax call?

我正在尝试在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>

我已经让它开始工作了(但不记得怎么做)。 我收到的错误是ajax调用的错误事件中的“ IIS 10.0详细错误-404.8-未找到”。 基本上,它永远不会进入index.aspx文件的页面加载方法。

你好,在ajax调用中尝试更改URL,例如:url:'App_Code / Index.aspx / Page_Load'我不确定这是否是答案,但可以尝试一下。

从屏幕快照中,您看来项目类型是Web应用程序,而不是网站。

首先,不要将App_Code文件夹用于Web应用程序项目。 它旨在用于网站项目中以放置未附加到页面(即未隐藏代码)的代码文件。 在Web应用程序项目中,您可以将代码文件放置在所需的任何位置,因此App_Code文件夹不是必需的,并且不提供任何特殊功能。 您仍然可以像使用其他任何文件夹一样使用它,但是建议改用命名更好的文件夹。

因此,您应该避免将aspx页面放在App_Code文件夹中,因为它令人困惑并且在Web应用程序项目中没有意义。 为此,请使用命名更好的文件夹。 出于这个原因,我将避免发布使之起作用的解决方案,因为您一开始就不应该这样做。

而是将App_Code文件夹重命名为有意义的名称,例如API ,然后在您的Ajax中使用该名称,例如/api

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM