我已经看到了如何在JSON中序列化到一个对象。如何发布返回ViewResult
的字符串?
$.ajax({
url: url,
dataType: 'html',
data: $(this).val(), //$(this) is an html textarea
type: 'POST',
success: function (data) {
$("#report").html(data);
},
error: function (data) {
$("#report").html('An Error occured. Invalid characters include \'<\'. Error: ' + data);
}
});
MVC
[HttpPost]
public ActionResult SomeReport(string input)
{
var model = new ReportBL();
var report = model.Process(input);
return View(report);
}
答案 0 :(得分:5)
怎么样:
$.ajax({
url: url,
dataType: 'html',
data: {input: $(this).val()}, //$(this) is an html textarea
type: 'POST',
success: function (data) {
$("#report").html(data);
},
error: function (data) {
$("#report").html('An Error occured. Invalid characters include \'<\'. Error: ' + data);
}
});
如果你使用与参数名称匹配的密钥使data
成为一个JSON对象,MVC应该选择它。
在MVC方面......
[HttpPost]
public ActionResult SomeReport()
{
string input = Request["input"];
var model = new ReportBL();
var report = model.Process(input);
return View(report);
}
答案 1 :(得分:0)
您可能希望以json格式返回结果。不确定如何使用asp.net完全做到这一点,但如果它是Rails,它将是return @foo.to_json
答案 2 :(得分:0)
您需要添加contentType
。看看jQuery API:
答案 3 :(得分:0)
您可以在操作方法中使用[FromBody]属性,该属性指定应使用请求正文来绑定参数或属性。
[HttpPost]
public ActionResult SomeReport([FromBody] string input)
{
var model = new ReportBL();
var report = model.Process(input);
return View(report);
}