我的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;
});
});
有效。请说明为什么第一个不起作用?
答案 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;
});
});
试试这个并告诉出现什么警报