在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);
        }
    }


慕尼黑的夜晚无繁华
浏览 1374回答 3
3回答

饮歌长啸

完成更新后,它首先使用默认的HttpGet请求调用FirstAjax操作并呈现空白的Html视图。(早先你没有)稍后加载该视图的DOM元素时,您的Ajax调用将被触发并显示警报。之前您只是将JSON返回给浏览器而不呈现任何HTML。现在它呈现了一个HTML视图,它可以获取您的JSON数据。您不能直接呈现JSON的普通数据而不是HTML。

qq_遁去的一_1

删除数据属性,因为您不是POSTING服务器的任何内容(您的控制器不期望任何参数)。在您的AJAX方法中,您可以使用Razor和使用@Url.Action而不是静态字符串:$.ajax({ &nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'@Url.Action("FirstAjax",&nbsp;"AjaxTest")', &nbsp;&nbsp;&nbsp;&nbsp;contentType:&nbsp;"application/json;&nbsp;charset=utf-8", &nbsp;&nbsp;&nbsp;&nbsp;dataType:&nbsp;"json", &nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;successFunc, &nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;errorFunc});从您的更新:$.ajax({ &nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;"POST", &nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'@Url.Action("FirstAjax",&nbsp;"AjaxTest")', &nbsp;&nbsp;&nbsp;&nbsp;contentType:&nbsp;"application/json;&nbsp;charset=utf-8", &nbsp;&nbsp;&nbsp;&nbsp;data:&nbsp;{&nbsp;a:&nbsp;"testing"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;dataType:&nbsp;"json", &nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function()&nbsp;{&nbsp;alert('Success');&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;errorFunc});

白板的微信

使用Razor通过调用您的操作动态更改您的URL:$.ajax({ &nbsp;&nbsp;&nbsp;&nbsp;type:&nbsp;"POST", &nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'@Url.Action("ActionName",&nbsp;"ControllerName")', &nbsp;&nbsp;&nbsp;&nbsp;contentType:&nbsp;"application/json;&nbsp;charset=utf-8", &nbsp;&nbsp;&nbsp;&nbsp;data:&nbsp;{&nbsp;data:&nbsp;"yourdata"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;dataType:&nbsp;"json", &nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function(recData)&nbsp;{&nbsp;alert('Success');&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;function()&nbsp;{&nbsp;alert('A&nbsp;error');&nbsp;}});
打开App,查看更多内容
随时随地看视频慕课网APP