c# – 在asp.net mvc中对控制器进行简单的Ajax调用

我试图开始使用ASP.NET MVC Ajax调用。

控制器:

public class AjaxTestController : Controller
{
    //
    // GET: /AjaxTest/
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult FirstAjax()
    {
        return Json("chamara", JsonRequestBehavior.AllowGet);
    }   
}

视图:

<head runat="server">
    <title>FirstAjax</title>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var serviceURL = '/AjaxTest/FirstAjax';

            $.ajax({
                type: "POST",
                url: serviceURL,
                data: param = "",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: successFunc,
                error: errorFunc
            });

            function successFunc(data, status) {     
                alert(data);
            }

            function errorFunc() {
                alert('error');
            }
        });
    </script>
</head>

我只需要打印一个警报与控制器方法返回数据。上面的代码只是打印“chamara”在我的视图。警报未触发。

更新

我修改了我的控制器如下,它开始工作。我不清楚为什么它现在工作。有人请解释。参数“a”不相关我添加它,因为我不能添加两个方法具有相同的方法名称和参数。我认为这可能不是解决方案,但其工作

public class AjaxTestController : Controller
    {
        //
        // GET: /AjaxTest/
        [HttpGet]
        public ActionResult FirstAjax()
        {
            return View();
        }

        [HttpPost]
        public ActionResult FirstAjax(string a)
        {
            return Json("chamara", JsonRequestBehavior.AllowGet);
        }
    }
在你做了更新之后,

>它首先调用的FirstAjax操作,默认HttpGet请求
并呈现空白的Html视图。 (以前你没有它)
>稍后加载该视图的DOM元素时,Ajax调用会触发并显示警报。

以前你只是返回JSON到浏览器,而不渲染任何HTML。现在它有一个HTML视图呈现,它可以获得您的JSON数据。

您不能直接渲染JSON的纯数据而不是HTML。

http://stackoverflow.com/questions/16186083/making-a-simple-ajax-call-to-controller-in-asp-net-mvc

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 在asp.net mvc中对控制器进行简单的Ajax调用