制作一个简单的Ajax调用在asp.net mvc的控制器 [英] Making a Simple Ajax call to controller in asp.net mvc

查看:119
本文介绍了制作一个简单的Ajax调用在asp.net mvc的控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

控制器:

 公共类AjaxTestController:控制器
{
    //
    // GET:/ AjaxTest /
    公众的ActionResult指数()
    {
        返回查看();
    }    公众的ActionResult FirstAjax()
    {
        返回JSON(chamara,JsonRequestBehavior.AllowGet);
    }
}

查看:

 <头=服务器>
    <标题> FirstAjax< /标题>
    &所述; SCRIPT SRC =HTTP://$c$c.jquery.com/jquery-1.9.1.js>&下; /脚本>
    &所述; SCRIPT SRC =htt​​p://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js>&下; /脚本>
    <脚本类型=文/ JavaScript的>
        $(文件)。就绪(函数(){
            VAR的serviceURL ='/ AjaxTest / FirstAjax';            $阿贾克斯({
                键入:POST,
                网址:serviceURL中,
                数据:参数=,
                的contentType:应用/ JSON的;字符集= UTF-8,
                数据类型:JSON
                成功:successFunc,
                错误:errorFunc
            });            功能successFunc(数据,状态){
                警报(数据);
            }            功能errorFunc(){
                警报('错误');
            }
        });
    < / SCRIPT>
< /头>

我只需要与控制器方法返回的数据打印警报。上述code只是打印上我的看法chamara。警报不点火。

更新

我修改我的控制器如下,并开始工作。我没有,为什么它的工作现在一个清晰的概念。有人请解释。参数a不相关的,我增加了,因为我不能添加两个方法具有相同的方法名称和parameters.I认为这可能不是解决办法,但它的工作。

 公共类AjaxTestController:控制器
    {
        //
        // GET:/ AjaxTest /
        [HTTPGET]
        公众的ActionResult FirstAjax()
        {
            返回查看();
        }        [HttpPost]
        公众的ActionResult FirstAjax(字符串)
        {
            返回JSON(chamara,JsonRequestBehavior.AllowGet);
        }
    }


解决方案

您已经完成了更新后,


  1. 它首先调用默认HTTPGET请求FirstAjax行动
    并呈现空白的HTML视图。 (此前你没有拥有它)

  2. 后来这种观点的DOM元素加载你的Ajax调用被解雇,并显示警告。

此前你只JSON返回到浏览器勿使任何HTML。现在,它已使一个HTML视图在那里可以得到你的JSON数据。

您不能直接呈现JSON的明文数据而不是HTML。

I'm trying to get started with ASP.NET MVC Ajax calls.

Controller:

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

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

View:

<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>

I just need to print an alert with the controller method returning data. Above code just print "chamara" on my view. An alert is not firing.

UPDATE

I modified my controller as below and it start working. I don't have an clear idea why it's working now. Some one please explain. The parameter "a" does not related i added it because i can not add two methods with same method name and parameters.I think this might not be the solution but its working

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

        [HttpPost]
        public ActionResult FirstAjax(string a)
        {
            return Json("chamara", JsonRequestBehavior.AllowGet);
        }
    }

解决方案

After the update you have done,

  1. its first calling the FirstAjax action with default HttpGet request and renders the blank Html view . (Earlier you were not having it)
  2. later on loading of DOM elements of that view your Ajax call get fired and displays alert.

Earlier you were only returning JSON to browser without rendering any HTML. Now it has a HTML view rendered where it can get your JSON Data.

You can't directly render JSON its plain data not HTML.

这篇关于制作一个简单的Ajax调用在asp.net mvc的控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆