Ste*_*mar 2 javascript c# asp.net ajax asp.net-mvc
我正在开发一个 Asp.net MVC 应用程序。在我的项目中,我使用了一个名为Dhtmlx Scheduler 的第三方 JavaScript 库。
这个库中有一个函数,然后将调度器上的所有数据写入 XML 格式。然后我需要操作这些数据,并写回到<textarea>我的视图页面上。
到目前为止,这就是我所拥有的:
看法:
function save() {
var url = "/Home/Save"
var xml = scheduler.toXML();
$.ajax({
url: url,
Type: "POST",
dataType: 'json',
async: false,
data: { xmlString: xml },
contentType: 'application/json; charset=utf-8',
success: alert("File Saved in C:\\ Drive as Tasks.xml")
});
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult Save(string xmlString)
{
XmlDocument doc = new XmlDocument();
try
{
doc.LoadXml(xmlString);
}
catch(Exception e)
{
Console.WriteLine(e);
}
doc.Save(@"C:\\Tasks.xml");
W6ViewModel viewModel = new W6ViewModel();
viewModel.engineers = db.W6ENGINEERS.ToList();
viewModel.tasks = db.W6TASKS.ToList();
viewModel.skills = db.W6TASKS_REQUIRED_SKILLS1.ToList();
viewModel.categories = db.W6TASKTYPECATEGORY.ToList();
gatherInfo(viewModel);
return View("Index", viewModel);
}
Run Code Online (Sandbox Code Playgroud)
当尝试保存三个事件(Dhtmlx 对象)时,它完美无缺,当尝试向 XML 添加更多数据时,我收到此错误(读取表单 FireBug):
此请求的查询字符串的长度超过了配置的 maxQueryStringLength 值。
任何帮助将不胜感激。谢谢!
萤火虫控制台:

我相信 jQuery.ajax 使用type而不是Type. 这是区分大小写的。如果您查看 Firebug,它正在执行 GET 请求而不是 POST:
$.ajax({
url: url,
Type: "POST",
dataType: 'json',
async: false,
data: { xmlString: xml },
contentType: 'application/json; charset=utf-8',
success: alert("File Saved in C:\\ Drive as Tasks.xml")
});
Run Code Online (Sandbox Code Playgroud)
应该
$.ajax({
url: url,
type: "POST",
dataType: 'json',
async: false,
data: { xmlString: xml },
contentType: 'application/json; charset=utf-8',
success: alert("File Saved in C:\\ Drive as Tasks.xml")
});
Run Code Online (Sandbox Code Playgroud)