Я следовал этот учебник https://www.youtube.com/watch?v=c_MELPfxJug относительно AJAX и JsonResult в HomeControllerMVC 5 JsonResult возвращает html?
я учебник, однако по какой-то причине, контроллер возвращается Html, а не JSON
я не изменил одну строку кода, но он не работает с parseError на стороне javascript.
Когда я смотрю на ответ, я вижу 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>
}
какой HTML он возвращает? если есть ошибка, он может также возвращать страницу с ошибкой – DLeh
, я не уверен, что делает ваш учебник, но вы должны сделать 'return Json (new {DoubleValue = doubleValue});' вместо 'new'ing' JsonResult ' – DLeh
@DLeh, что действительно не нужно, в основном метод' Json() 'создает новый объект' JsonResult'. –