我一直关注本教程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>
}
答案 0 :(得分:2)
发现错误 我使用的是Html.Action而不是Url.Action - &gt;我认为只是人为错误
参考文献:
"
现在可以使用
Html.Action - returns the result as an HTML string.
答案 1 :(得分:1)
我想这肯定是默认的错误页面,你可能得到500响应,你必须使用浏览器的网络选项卡来查看真正的问题。
从那里你可以看到你的ajax做的真实请求和来自服务器的响应。