Ich habe eine Funktion zum Löschen eines Datensatzes aus einer DB-Tabelle implementiert. Wenn es einen Fehler gibt, möchte ich es in ViewBag übergeben. Der ViewBag-Wert wird jedoch nicht an die Ansicht übergeben.ASP.Net MVC ViewBag arbeitet nicht an Funktionen, die von AJAX aufgerufen werden
-Controller
[HttpPost]
public ActionResult DeleteRecord(string name)
{
try
{
if (!(string.IsNullOrEmpty(name)))
{
driver_tab driver = db.driver_tab.SingleOrDefault(m => m.Name == name);
db.driver_tab.Remove(driver);
db.SaveChanges();
ViewBag.Msg = "1";
MessageBox.Show(ViewBag.Msg);
return View("Main");
}
else
{
ViewBag.Msg = "2";
return View("Main");
}
}
catch (DbEntityValidationException ex)
{
ViewBag.Msg = ex.Message.ToString();
return View("Main");
}
catch (Exception ex2)
{
ViewBag.Msg = ex2.Message;
return View("Main");
}
}
Ajax-Funktion in Ansicht
function DeleteSelectedRecord() {
var SelectedName = $("#lstItems").val()
$.ajax({
url: 'DeleteRecord',
method: "POST",
data: { name: SelectedName }
}).done(function() {
$("#lstItems").empty();
Search();
GetCount();
$('#modalDeleted').modal('show');
setTimeout(function() { $('#modalDeleted').modal('hide'); }, 2000);
});
}
Ich benutze diese ViewBag.Msg
in der Ansicht Gefällt Ihnen dieses <h2>@ViewBag.Msg
Aber es funktioniert nicht. Was ist das Problem in meinem Code?
Wenn ein Fehler in der Steuerung nach dem Ausführen der Löschfunktion aufgetreten ist, möchte ich diese Nachricht an die Ansicht übergeben und anzeigen. Wie erreiche ich das?
Könnten Sie bitte entfernen MessageBox.Show (ViewBag .Msg); Aussage und versuchen? –