AJAX Post方法未命中控制器

时间:2019-10-17 22:48:18

标签: asp.net-mvc

有人可以在这里指出我的意思吗?我的控制器未点击Ajax发布

Ajax代码

 <script type="text/javascript">
  $(document).ready(function () {
      $('#btncreate').click(function () {
          var projectid = $("#txtprojectid").val();
          var financetype = $("#txtfinancetype").val();
          var actualcost = $("#txtactualcost").val();
          $.ajax({
              url: 'Projects/CreateFinanceItems?pid=' + projectid + "&ft=" + financetype + "&ac=" + actualcost,
              datatype: 'json',
              success: function (response) {
                  alert("Yes");
                  if (response != null) {
                      $('#displayproContainer').load('/Projects/PartialprojectFinanceItem');
                  }
              },
              error: function (xhr, ajaxOptions, thrownError) {
                  alert(xhr.status);
                  alert(thrownError);
              }
          })
        });
    });        
    </script>

控制器代码

 [HttpPost]
    public ActionResult CreateFinanceItems(string pid, string ft, string ac)
    {
        return View();
    }

1 个答案:

答案 0 :(得分:0)

首先,您忘记了在Ajax中指定请求的类型。默认值是Get。 第二件事,您必须以/开头请求的url,这意味着网站的根URl,然后是Action结果的路径。

    <script type="text/javascript">
  $(document).ready(function () {
      $('#btncreate').click(function () {
          var projectid = $("#txtprojectid").val();
          var financetype = $("#txtfinancetype").val();
          var actualcost = $("#txtactualcost").val();
          $.ajax({
              url: '/Projects/CreateFinanceItems?pid=' + projectid + "&ft=" + financetype + "&ac=" + actualcost,
              type: 'POST',
              datatype: 'json',
              success: function (response) {
                  alert("Yes");
                  if (response != null) {
                      $('#displayproContainer').load('/Projects/PartialprojectFinanceItem');
                  }
              },
              error: function (xhr, ajaxOptions, thrownError) {
                  alert(xhr.status);
                  alert(thrownError);
              }
          })
        });
    });        
    </script>