我正在尝试开始使用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); } }
完成更新后,
之前,您只是将JSON返回浏览器,而不呈现任何HTML。现在,它呈现了一个HTML视图,可以在其中获取JSON数据。
您不能直接将JSON的纯数据而不是HTML呈现。