Ich habe eine Seite, die eine Liste von Studenten hat. Die Teilansicht, die eine Liste darstellt, heißt "StudentManager". Die Teilansicht, die ich in einem Modal zum Erstellen eines neuen Schülers verwende, heißt "NewStudent".Teilansicht Aktualisierung einer anderen Teilansicht Probleme
Ich habe ein paar Probleme mit diesem Controller-Code. Aus irgendeinem Grund, nachdem ich Submit auf der Teilansicht "NewStudent" gedrückt habe, jedesmal nachdem ich die Seite aktualisiert habe, ist ein neuer Student da, ohne dass ich rein gehe und auf "Submit" drücke ... Das ist ein Problem.
Auch ich habe ähnliche Themen hier auf Stapel gesucht und ich kann nicht zu verstehen scheinen, warum PartialView zurückzugeben ("StudentManager", db.Students.ToList()); wird meine "StudentManager" -Ansicht nicht automatisch aktualisieren. Dieser Code soll mir eine Liste in einer Teilansicht geben, und eine andere Teilansicht soll mir erlauben, ein neues Listenelement zu erstellen und dann die Liste Teilansicht zu aktualisieren.
Controller:
public ViewResult Index()
{
return View();
}
public ActionResult StudentManager()
{
return PartialView(db.Students.ToList());
}
public ActionResult NewStudent()
{
return PartialView();
}
//
// POST:
[HttpPost]
public ActionResult NewStudent(Student student)
{
if (ModelState.IsValid)
{
db.Students.Add(student);
db.SaveChanges();
return RedirectToAction("Index");
}
return PartialView();
}
Index.cshtml:
@Html.Action("StudentManager", "StudentController")
<div class="modal modal-wide fade" id="myModal4" role="dialog">
<div class="modal-dialog">
@Html.Action("NewStudent", "StudentController")
</div>
</div>
Hier ist die "NewStudent.cshtml" Ansicht:
@model GunneryTracker.Models.Student
<fieldset>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<center>
<h4 class="modal-title">New Student</h4>
</center>
</div>
<div class="modal-body">
<div class="col-md-12">
<div class="clearfix"></div>
<div class="x_content">
<br />
<form class="form-horizontal form-label-left" >
<div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12">
<label class="control-label col-md-2 col-sm-2 col-xs-12" style="margin-right:10px">Course</label>
<div class="col-md-3 col-sm-3 col-xs-12">
@Html.DropDownList("CourseID", null, "-- Select Course --", htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CourseID, "", new { @class = "text-danger" })
</div>
<label class="control-label col-md-2 col-sm-2 col-xs-12" style="margin-right:10px">Location</label>
<div class="col-md-3 col-sm-3 col-xs-12">
@Html.DropDownList("LocationID", null, "-- Select Location--", htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.LocationID, "", new { @class = "text-danger" })
</div>
</div>
<div class="editor-label">
@Html.LabelFor(model => model.FName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FName)
@Html.ValidationMessageFor(model => model.FName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.LName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LName)
@Html.ValidationMessageFor(model => model.LName)
</div>
</div>
<br />
<br />
<div class="form-group">
<center>
<p>
<input type="submit" value="Create" />
</p>
</center>
</div>
</form>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Save</button>
</div>
</div>
</fieldset>
Pardon die slouchy html ... Die prettyfication ist nicht abgeschlossen ...
Was ist der Unterschied in was ich versetze? @ Html.Action ("NewStudent", "StudentController") Tun sie nicht dasselbe? –
Entschuldigung, ich vermisse dich zu verstehen. Sie sind eine Art gleich – Aleksei
Das wird aber nicht funktionieren. Die Post-Aktion "CreateStudent" ist eine Aktion "partialView" und untergeordnete Aktionen dürfen keine Umleitungsaktionen ausführen. –