我有一个 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 }
});
我现在的问题是,无论我做什么,它总是将空值传递给我的控制器。
我的ajax查询的数据部分总是像这样设置:
数据:{电子邮件信息:内部}
第一部分是 C# 函数的参数名称,第二部分是您想要传递给它的值,我假设您从 javascript 文件的前面部分获得了该值(并且记录了控制台以确保该值不是 null开始值)