Derzeit kann ich Modelle regelmäßig erstellen (von SettingProfile gehen/Create)Wie erstelle ich ein Modell MVC AJAX in ASP.NET mit 5
Aber wenn ich versuche, AJAX zu verwenden, um Daten in settingProfile JS Objekt gewickelt senden Es gibt HTTP 500 Internal Server Error Fehler zurück, ich glaube, dass das Problem im Datentyp liegt. Was wäre der richtige Weg, Create-Methode in AJAX aufzurufen?
Mein Code:
Modell:
public class SettingProfile
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string Name { get; set; }
public long? UserId { get; set; }
public string Url { get; set; }
}
anzeigen (JS):
function saveSettingProfile() {
var name = prompt("Please enter profile name", "");
var url = $("form").serialize(); // Not AJAX url, its a variable in model
var settingProfile = {
Name: name,
Url: url
};
jQuery.ajax({
url: "@Url.Action("Create", "SettingProfile")",
contentType: "application/json; charset=utf-8",
dataType: "json",
method: "POST",
data: settingProfile
}).done(function (response) {
alert("Profile saved successfully");
}).fail(function() {
alert("Could not save profile");
});
}
Controller:
[HttpPost]
//[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Name,Url")] SettingProfile settingProfile)
{
settingProfile.UserId = 8; // TODO: get user id from session
if (ModelState.IsValid)
{
db.SettingProfiles.Add(settingProfile);
db.SaveChanges();
return Json(new { success = true });
}
return Json(new { success = false });
}
Wenn der HTTP-Status 500 ist, was ist dann die Ausnahmebedingungsnachricht? – Anton
Warum ist die Ajax.BeginForm-Methode nicht möglich? – Xavr