我正尝试使用Ajax调用将一些数据保存到数据库中,就像我以前做过数百次一样:
function saveNewGraphic() {
var svgString = drawObject.node().outerHTML;
if (logLevel >= 10) {
console.log("svgEditor - saveNewGraphic");
console.log("SVG-Grafik: " + svgString);
}
$.ajax({
type: "POST",
url: appBaseUrl + 'Symbols/SaveNewGraphic',
data: {
svgString: svgString,
pageId: pageId
},
error: function () {
alert("Fehler beim Speichern der neuen Grafik auf Seite (ID) " + pageId);
},
success: function (result) {
if (logLevel >= 10) console.log("Grafik mit ID: " + result.data.ID + " gespeichert");
// svg.attr("id", result.data.ID);
},
async: false
});
}
svgString可以,pageId也可以。 我尝试了同样的操作,没有错误,成功和异步,但是它甚至没有击中Controller-Action。 仅留言:
HTTP500: SERVERFEHLER: Es ist ein unerwarteter Zustand aufgetreten, sodass der Server die Anforderung nicht erfüllen kann.
(XHR)POST - http://localhost:52771/Symbols/SaveNewGraphic
这是应该执行的操作:
[HttpPost]
[Authorize(Roles = RoleName.AdminOrEngineerOrSales)]
public ActionResult SaveNewGraphic(string svgString, int pageId)
{
string message="ID fehlerhaft";
//if (pageId == 0) message = "Neue Grafik wurde nicht gespeichert, Page-ID nicht lesbar" ;
int id = 1;// SymbolDataProvider.SaveNewProjectGraphic(svgString, pageId, User.Identity.Name);
//if(id >= 0) message = "Grafik erfolgreich gespeichert";
var data = new { ID = id, Message = message };
return Json(new { data, JsonRequestBehavior.AllowGet });
}
奇怪的是,此操作将被击中(当然,如果我更改网址)。
[HttpPost]
[Authorize(Roles = RoleName.AdminOrEngineerOrSales)]
public ActionResult SaveNewPosition(string positionData, int pageId, int id = 0, int symbolId = 0)
{
string message;
if (id == 0)
message = "Position nicht gespeichert, Id nicht lesbar";
else if (SymbolDataProvider.SaveSymbolPosition(id, positionData, symbolId, pageId, User.Identity.Name))
message = "Position gespeichert.";
else
message = "Position nicht gespeichert, Probleme beim Datenbankaufruf!";
return Json(new { Message = message, JsonRequestBehavior.AllowGet });
}
但是我看不到它们之间的区别。