【问题标题】:ASP.NET AJAX Can not find the controllerASP.NET AJAX 找不到控制器
【发布时间】:2018-03-28 11:14:08
【问题描述】:

在过去的 3 个小时里,我一直在努力完成这项工作: 这是我的项目的图片: https://i.imgur.com/mhfgP4A.png

这是我在 Controllers 文件夹中的 HomeController.cs:

public class HomeController : Controller
{
    public class HomeController : Controller
    {
        [WebMethod]
        public static int OnSubmit()
        {
            return 1;
        }

        [HttpGet]
        public ActionResult Index()
        {
            return View("Index");
        }
    }
}

这是我的 Index.cshtml 中的 AJAX 脚本:

<script type="text/javascript">
    function sendRequest() {
        $.ajax({
            type: "POST",
            url: 'HomeController/OnSubmit',
            contentType: "application/json; charset=utf-8",
            success: OnSuccess
        });
    }

    function OnSuccess(result) {
        alert(result);
    }
</script>

每次我尝试运行脚本时,它都会显示 控制台中的“POST http://localhost:62738/HomeController/OnSubmit404(未找到)”。 我一直在尝试不同的 url,@URL.Action,创建另一个类并将它放在不同的文件夹中,看看它是否有效,但没有。总是同样的错误。还尝试将[HttpPost]放在[WebMethod]下

【问题讨论】:

  • 我认为您需要将 [WebMethod] 替换(不在)为 [HttpPost]。还要删除 static 关键字。 MVC 不允许在 Action 方法中使用静态
  • 它工作.. 谢谢!我认为问题出在 static 关键字上。之前尝试用 HttpPost 替换 WebMethod。
  • 很高兴有帮助。请接受我发布的答案,这将对未来的读者有所帮助。

标签: asp.net ajax routing


【解决方案1】:

尝试将[WebMethod] 替换为[HttpPost] 并删除static 关键字。 MVC 不允许在 Action 方法中使用 static

public class HomeController : Controller
{
    public class HomeController : Controller
    {
        [HttpPost]
        public int OnSubmit()
        {
            return 1;
        }

        [HttpGet]
        public ActionResult Index()
        {
            return View("Index");
        }
    }
}

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多