MVC 5 JsonResult返回html?

时间:2015-07-07 13:49:21

标签: asp.net ajax asp.net-mvc jsonresult

我一直关注本教程https://www.youtube.com/watch?v=c_MELPfxJug关于HomeController中的ajax和JsonResult

我做了教程,但由于某种原因,控制器返回Html而不是json

我没有改变一行代码,但它在javascript端失败了parseError。

当我看到响应时,我看到一个html页面,而不是一个json对象。

控制器代码:

    public JsonResult DoubleValue(int? Value)
    {
        if (!Request.IsAjaxRequest() || !Value.HasValue)
        { return null; }
        else
        {
            int DoubleValue = Value.Value * 2;
            var ret =  new JsonResult
            {
                Data =
                    new { DoubleValue = DoubleValue }
            };
            return ret;
        }
    }

CSHTML:

@using (Html.BeginForm())
{

    @Html.TextBox("txtAmount",0)
     <button id="btnDoubleValue">DoubleIT</button>
    <div id="lblMessage"></div>

}

@section Scripts{
<script type="text/javascript">
    $(function () {
        $('#btnDoubleValue').on('click', function() {

             $.ajax({
                 type: 'POST',
                 url: '@Html.Action("DoubleValue")',
                 data: { 'Value': $('#txtAmount').val() },
                 datatype: 'json',
                 cache: 'false'
             }).success(function (data) {

                 var t = data;

                 $('#txtAmount').val(data.DoubleValue);
             }).error(function (x, o, e) {
                 $('#lblMessage').html('error was found: ' );
             });

            return false;
        })
    });

    </script>
   }

2 个答案:

答案 0 :(得分:2)

发现错误 我使用的是Html.Action而不是Url.Action - &gt;我认为只是人为错误

参考文献:

"

现在可以使用

   Html.Action - returns the result as an HTML string.

答案 1 :(得分:1)

我想这肯定是默认的错误页面,你可能得到500响应,你必须使用浏览器的网络选项卡来查看真正的问题。

  • 在浏览器中使用F12键打开开发人员工具,然后导航到“网络”选项卡。
  • 执行相应操作以执行ajax请求(单击该按钮)
  • 点击请求行
  • 导航至“响应”选项卡。

从那里你可以看到你的ajax做的真实请求和来自服务器的响应。