我想从ajax获取控制器中的值。我在控制器中设置了一个断点并且它断开了,但是值不存在。我在代码中遗漏了什么或者我需要更改某些内容吗?
这是我的控制器代码:
[HttpPost]
public ActionResult SubmitResponse(string responseData)
{
string test = responseData;
return View();
}
这是我的ajax代码:
$( "#dialog-form" ).dialog({
autoOpen: false,
height: 500,
width: 900,
modal: true,
buttons: {
"Submit": function () {
var response = $.trim($('#name').val());
//responseData = JSON.stringify(responseData);
alert('response data = ' + response + '!!!');
//alert('YES');
$.ajax({
url: 'Questions/SubmitResponse',
type: 'POST',
data: JSON.stringify(response),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function(){
alert('success');
},
error: function(){
alert('error buddy');
}
});
},
答案 0 :(得分:4)
您需要使用success
回调中的响应数据。
修改强>
我已经准备好了一个完整的例子,希望能够清除这种混乱。 假设您的客户端代码中包含以下内容:
<button id="testButton" name="testButton">Simulate</button>
<script>
$(function () {
var dataToBeSend = {
test: "This will be appended to the question title !"
};
$("#testButton").click(function () {
$.ajax({
url: "/Questions/Test",
type: "post",
data: JSON.stringify(dataToBeSend),
dataType: "json",
contentType: "application/json",
success: function (question) {
alert(question.Title);
},
error: function () {
alert("Oh noes");
}
});
});
});
</script>
注意:您可以使用$.post缩短此来电。
在QuestionsController
:
public class QuestionsController : Controller
{
[HttpPost]
public JsonResult Test(string test)
{
var question = new Question {Title = "What is the Matrix ? " + test};
return Json(question);
}
}
// Will be Serializing this class
public class Question
{
public string Title { get; set; }
}
如果您需要对此进行澄清,请告诉我。