C# ajax post请求404未找到

问题描述 投票:0回答:1

我有一个 ajax 查询从位于文件夹 Project/Pages/IT/NewEmailSetup 中的页面运行

我希望它向位于 Project/Controllers/TestEmailSenderController 中的控制器调用发布请求

我尝试了各种方法,但无论我做什么,它都只会返回 404 错误。

我最近的测试如下所示:

Ajax 查询:

$.ajax({
type: 'post',
url: '/Controllers/TestEmailSender/Send',
contentType: 'application/json',
data: { "EmailInfo": inner }
});

然后在我的控制器中如下:

[Route("Controllers/[controller]")]
public class TestEmailSenderController : Controller
{
 public IActionResult Index()
 {
     return View();
 }
 [HttpPost]
 [Route("Send")]
 public ActionResult Send(string EmailInfo)
 {
 //Action code
 }
}

任何帮助将不胜感激,我对 ajax/网站总体来说很陌生。

编辑

我通过将以下内容添加到我的 StartupCS 来使其工作

 endpoints.MapControllerRoute(
 name: "default",
 pattern: "Controllers/{controller=Home}/{action=Index}/{id?}");

我的控制器已更新为

[Route("Controllers/[controller]/[Action]")]
public class TestEmailSenderController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
    [HttpPost]
    public ActionResult Send([FromBody]EmailInfo EmailInfo)
    {
    //Action
    }
}

我的ajax现在是:

$.ajax({
   type: 'post',
   url: '/Controllers/TestEmailSender/Send',
   contentType: 'application/json',
   data: { inner }
});

我现在的问题是,无论我做什么,它总是将空值传递给我的控制器。

javascript c# asp.net ajax post
1个回答
0
投票

我的ajax查询的数据部分总是像这样设置:

数据:{电子邮件信息:内部}

第一部分是 C# 函数的参数名称,第二部分是您想要传递给它的值,我假设您从 javascript 文件的前面部分获得了该值(并且记录了控制台以确保该值不是 null开始值)

© www.soinside.com 2019 - 2024. All rights reserved.