我目前正在开发一个 ASP.Net MVC 项目。 我有一个 JavaScript 函数,它接受 XML 字符串作为输入。我想将其发送到 Controller 。
我使用 AJAX 请求来完成此操作,但在 Controller 中字符串为空。
查看:
function save() {
var xml = scheduler.toXML();
alert(xml);
var url = '@Url.Action("Save", "Home")'
$.ajax({
url: url,
Type: "POST",
dataType: 'json',
async: false,
data: xml,
contentType: 'application/json; charset=utf-8',
success: function (data) { alert("OK");},
error: function (jqXHR, exception) {
alert('Error message.');
}
});
Controller :
public ActionResult Save(string xml)
{
Console.WriteLine(xml);
W6ViewModel viewModel = new W6ViewModel();
viewModel.engineers = db.W6ENGINEERS.ToList();
viewModel.tasks = db.W6TASKS.ToList();
viewModel.skills = db.W6TASKS_REQUIRED_SKILLS1.ToList();
var engList = new List<object>();
foreach (var engineer in viewModel.engineers)
{
engList.Add(new { key = engineer.ID, label = engineer.Name });
}
ViewBag.engineers = engList;
return View("Index", viewModel);
}
var xml = scheduler.toXML()
警报(xml):
错误代码(抱歉,文字墙):
[HttpRequestValidationException (0x80004005): A potentially dangerous Request.QueryString value was detected from the client (xmlString="<data><event>
最佳答案
像这样命名你的参数:
function save() {
var xml = scheduler.toXML();
alert(xml);
var url = '@Url.Action("Save", "Home")';
$.ajax({
url: url,
Type: "POST",
dataType: 'json',
async: false,
data: { xml: xml},
contentType: 'application/json; charset=utf-8',
success: function (data) { alert("OK");},
error: function (jqXHR, exception) {
alert('Error message.');
}
});
同时将此标记放在 Controller 操作上方:
[ValidateInput(false)]
关于c# - asp.net MVC JavaScript 调用 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24555614/