Это призыв к ajax для размещения моей формы.
<script type="text/javascript">
$(function () {
$("#GetReport").click(function () {
var d = {input:$("#frm").serialize()};
$.ajax({
type: 'POST',
url: '/Questions/Answer',
data: JSON.stringify(d),
dataType: "json",
contentType: "application/json",
success: function (result) {
alert(result);
}
});
});
});
</script>
и это мое действие
[HttpPost]
public ActionResult Answer(string input)
{
return Content("Success");
}
Когда я нажимаю соответствующую кнопку, действие вызывается, но когда значение возвращается, я ожидаю, что появится предупреждение с сообщением "Успех", но я ничего не получаю, несмотря на то, что мое действие вызвано.
Попробуйте dataType: "text"
, поскольку вы, кажется, возвращаете обычную строку (это не в формате JSON), а dataType
указывает ожидаемый формат ответа, а не формат запроса. (Или просто удалите параметр dataType
, и в этом случае jQuery будет делать dataType
возможное, чтобы dataType
, какой формат ответа он видит.)
[HttpPost]
public ActionResult Answer(string input)
{
return Json("Success", JsonRequestBehavior.AllowGet);
}
dataType:"json"
сообщает jQuery, что вы ожидаете, что ответом будет JSON, поэтому, когда ваш ответ не является JSON, запрос по определению не удался, поэтому ваш обработчикsuccess
не вызывается. Если вы добавите обработчик ошибок, он должен быть вызван.