为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

在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”。警报未触发。UPDATE我修改了我的控制器如下,它开始工作。我不清楚它为什么现在正在工作。有人请解释一下。参数“a”没有关联我添加它因为我不能添加两个方法具有相同的方法名称和参数。我认为这可能不是解决方案,但它的工作public class AjaxTestController : Controller     {         //         // GET: /AjaxTest/         [HttpGet]         public ActionResult FirstAjax()         {             return View();         }         [HttpPost]         public ActionResult FirstAjax(string a)         {             return Json("chamara", JsonRequestBehavior.AllowGet);         }     }
查看完整描述

3 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

完成更新后,

  1. 它首先使用默认的HttpGet请求调用FirstAjax操作并呈现空白的Html视图。(早先你没有)

  2. 稍后加载该视图的DOM元素时,您的Ajax调用将被触发并显示警报。

之前您只是将JSON返回给浏览器而不呈现任何HTML。现在它呈现了一个HTML视图,它可以获取您的JSON数据。

您不能直接呈现JSON的普通数据而不是HTML。


查看完整回答
反对 回复 2019-07-26
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

删除数据属性,因为您不是POSTING服务器的任何内容(您的控制器不期望任何参数)。

在您的AJAX方法中,您可以使用Razor和使用@Url.Action而不是静态字符串:

$.ajax({
    url: '@Url.Action("FirstAjax", "AjaxTest")',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: successFunc,
    error: errorFunc});

从您的更新:

$.ajax({
    type: "POST",
    url: '@Url.Action("FirstAjax", "AjaxTest")',
    contentType: "application/json; charset=utf-8",
    data: { a: "testing" },
    dataType: "json",
    success: function() { alert('Success'); },
    error: errorFunc});


查看完整回答
反对 回复 2019-07-26
?
白板的微信

TA贡献1883条经验 获得超3个赞

使用Razor通过调用您的操作动态更改您的URL:

$.ajax({
    type: "POST",
    url: '@Url.Action("ActionName", "ControllerName")',
    contentType: "application/json; charset=utf-8",
    data: { data: "yourdata" },
    dataType: "json",
    success: function(recData) { alert('Success'); },
    error: function() { alert('A error'); }});


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 1370 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信