Я пытаюсь создать файл index.aspx в каталоге App_Code , который будет принимать вызовы API, выполняемые ajax.
Пример:
(Здесь просто есть каталог 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>
Я заставлял это работать раньше (но не могу вспомнить, как). Я получаю сообщение об ошибке «Подробная ошибка IIS 10.0 - 404.8 - не найдено» в событии ошибки вызова ajax. Обычно он никогда не попадает в метод загрузки страницы файла index.aspx .
2 ответа
Из вашего снимка экрана кажется, что тип вашего проекта - это веб-приложение, а не веб-сайт.
Во-первых, не используйте папку App_Code
для проектов веб-приложений. Он был предназначен для использования в проектах веб-сайтов для размещения файлов кода, которые не прикреплены к странице (т. Е. Не кода программной части). В проектах веб-приложений вы можете размещать файлы кода в любом месте, поэтому папка App_Code
не требуется и не предлагает никаких специальных функций. Вы по-прежнему можете использовать ее, как любую другую папку, но вместо нее рекомендуется использовать папку с лучшим именем.
Поэтому вам следует избегать помещения aspx-страниц в папку App_Code
, потому что это сбивает с толку и не имеет смысла в проектах веб-приложений. Используйте для этого папку с лучшим именем. По этой причине я буду воздерживаться от публикации решения, которое заставит его работать, потому что вам вообще не следует этого делать.
Вместо этого переименуйте папку App_Code
во что-нибудь значимое, например API
, а затем используйте это имя в своем Ajax, например /api
.
Здравствуйте, в вызове ajax попробуйте изменить URL-адрес, например: url: 'App_Code / Index.aspx / Page_Load' Я не уверен, что это ответ, но попробуйте.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.