警报未显示$ .getJSOn asp.net MVC3

时间:2011-07-11 13:09:56

标签: javascript jquery asp.net asp.net-mvc-3

我的masterlayout中有一个actionlink,如下所示:

 @Html.ActionLink("Order Your Free Report 1", "CheckValue", "Product", null,new { id = "checkExists" })

我有一个这样的动作方法:

  public ActionResult CheckValue() {
            bool result = true;
            ViewData["checkCondition"] = true;
            return Json(result, JsonRequestBehavior.AllowGet);
        }

并且功能如下:

$(function () {
    $('#checkExists').click(function () {
     $.getJSON(this.href, function (result) {
            alert(result);
            if (result) {
                alert('the record exists');
            }           
        });
        return false;
    });
});

单击链接时,不显示警报。但如果我这样使用:

 $(function () {
  $('#checkExists').click(function () {

        var condition =new Boolean('@ViewData["checkCondition"]');
        if (condition) {
            alert("message");
        }
   return false;
    });
});

有效。请说明为什么第一个不起作用?

1 个答案:

答案 0 :(得分:0)

尝试将this包装到$(this)

$(function () {
    $('#checkExists').click(function () {
     $.getJSON($(this).attr('href'), function (result) {
            alert(result);
            if (result) {
                alert('the record exists');
            }           
        });
        return false;
    });
});

ajax版本

   $(function () {
      $('#checkExists').click(function () {

       $.ajax({
         url: $(this).attr('href'),
         type:'GET',
         success: function (result) { ... },
         dataType: 'json',
         error:function(jqXhr,textStatus, errorThrown){
             alert("Oops ");
             alert(jqXhr.responseText);
             alert(jqXhr.status);
         }
            });
          return false;
        });
    });

试试这个并告诉出现什么警报