嗨,我的控制器中有这个代码:
[HttpPost]
public JsonResult CalculateAndSaveToDB(BMICalculation CalculateModel)
{
if (ModelState.IsValid)
{
CalculateModel.Id = User.Identity.GetUserId();
CalculateModel.Date = System.DateTime.Now;
CalculateModel.BMICalc = CalculateModel.CalculateMyBMI(CalculateModel.Weight, CalculateModel.Height);
CalculateModel.BMIMeaning = CalculateModel.BMIInfo(CalculateModel.BMICalc);
db.BMICalculations.Add(CalculateModel);
db.SaveChanges();
}
return Json(new {CalculatedBMI = CalculateModel.BMICalc.ToString(), CalculatedBMIMeaning = CalculateModel.BMIMeaning.ToString() }, JsonRequestBehavior.AllowGet);
}
我想使用此JavaScript在页面上显示CalculatedModel.BMICalc和CalculatedModel.BMIMeaning:
$('#good').click(function () {
var request = new BMICalculation();
$.ajax({
url: "CalculateAndSaveToDB",
dataType: 'json',
contentType: "application/json",
type: "POST",
data: JSON.stringify(request),
success: function (response) {
var div = $('#ajaxDiv');
div.html("<br/> " + "<b>" + "Your BMI Calculations: " + "</b>");
printBMI(div, response);
},
});
});
function printBMI(div, data) {
div.append("<br/>" + "You are " + response.CalculatedBMI + ".");
div.append("<br/>" + "You exact BMI is: " + response.CalculatedBMIMeaning + ".");
};
当我点击按钮时,没有任何反应。表单中的正确数据正确进入数据库。我的Chrome调试器说,但是找不到CalculateAndSaveToDB 404错误。请帮忙。
答案 0 :(得分:0)
尝试在点击功能结束时返回false。
$('#good').click(function () {
//Your code
return false;
});
此外,我可以在printBMI函数中看到错误。没有引用变量&#34;响应&#34;。它应该是&#34;数据&#34;
function printBMI(div, data) {
div.append("<br/>" + "You are " + data.CalculatedBMI + ".");
div.append("<br/>" + "You exact BMI is: " + data.CalculatedBMIMeaning + ".");
};
答案 1 :(得分:0)
可能存在一些问题:
您的路由不正确,无法调用后期操作。我没有看到任何有关路由的信息,所以这可能是个问题。
正如PraveeReddy建议的那样,你不会返回假。如果您不这样做,浏览器会按照您的按钮链接。
只是一个提示:在这种简单的场景中,使用$ .load更容易:http://api.jquery.com/load/