Ajax Not returning Data to Action ASP.net MVC

I am new to MVC and facing a problem with accessing data via ajax in action of my ASP.NET Application. Here is my Ajax Code:

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

And here is my action inside the controller:

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

For testing I am just passing a static integer and getting its value inside my action.

On clicking the button I am getting the following error:

The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult GetData(Int32)' in 'careshade_mvc.Controllers.ConsultationController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.


这是工作代码:

<!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) {
              }
          });
    });
    });

You need to use a colon(:) character after url not the equals(=) sign.

Simply change:

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

To this:

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

This was the only change I had to make to make the call work.Hope it helps you!

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

上一篇: MFC对话框失去焦点时会冻结

下一篇: Ajax不会将数据返回到动作ASP.net MVC