Ajax不会将数据返回到动作ASP.net MVC

我是MVC的新手,并面临在ASP.NET应用程序的操作中通过ajax访问数据的问题。 这是我的Ajax代码:

$('.testBtn').click(function() {
    $.ajax({
        type: 'GET',
        data: { id: 10 },
        url="@Url.Action("GetData", "Consultation")",
        success:function()
        {
        }
    });
});

这里是我在控制器中的动作:

public ActionResult GetData(int id)
{
    string x=id.ToStrring();
    return null;
}

对于测试,我只是传递一个静态整数并在我的动作中获取它的值。

点击按钮我收到以下错误:

参数字典为'careshade_mvc.Controllers.ConsultationController'中的方法'System.Web.Mvc.ActionResult GetData(Int32)'包含一个空的条目,用于不可为空的类型'System.Int32'的参数'id'。 可选参数必须是引用类型,可为空类型,或者声明为可选参数。


这是工作代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $('.testBtn').click(function () {
            $.ajax(
              {
                  url: 'Consultation/GetData',
                  type: "POST",
                  data: { id: 10 },
                  success: function (result) {
                  }
              });
        });
        });
    </script>
</head>
<body>

   <input type="button" class="testBtn" value="ClickHere" name="button"> 
</body>

</html>

尝试这个:

$(document).ready(function() {
        var id = 10;
        $('.testBtn').click(function () {
        $.ajax(
          {
              url: 'Consultation/GetData/' + id,//instead data: { id: 10 },
              type: "GET",
              success: function (result) {
              }
          });
    });
    });

你需要在url之后使用冒号(:)而不是等号(=)。

只需更改:

url="@Url.Action("GetData", "Consultation")",

为此:

url:"@Url.Action("GetData", "Consultation")",

这是我必须做的唯一改变使呼叫work.Hope它帮助您!

链接地址: http://www.djcxy.com/p/6679.html

上一篇: Ajax Not returning Data to Action ASP.net MVC

下一篇: Sending/Receiving byte[] With AJAX and ASP.NET MVC