Hallo zusammen,
habe einen HomeController mit folgendem Code:
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
public ActionResult EditBankChildAction()
{
var personBank = db.Person_Bank.Find(1);
return PartialView(personBank);
}
[HttpPost]
public ActionResult EditBankChildAction(Person_Bank bank)
{
var personBank = db.Person_Bank.Find(1);
personBank.Owner = DateTime.Now.ToLongTimeString();
db.Entry(personBank).State = EntityState.Modified;
db.SaveChanges();
return PartialView(personBank);
}
Index.cshtml
<div style="float: left; width: 500px;">
<fieldset>
<legend>Stammdaten</legend>
</fieldset>
</div>
<div style="float: left; width: 300px; padding-left: 30px;">
@Html.Action("EditBankChildAction")
</div>
EditBankChildAction.cshtml
<div id="customresponse">
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "customresponse" }))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Bankverbindung</legend>
<div class="editor-label">
@Html.LabelFor(model => model.AccountNumber)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.AccountNumber)
@Html.ValidationMessageFor(model => model.AccountNumber)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.BankCode)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.BankCode)
@Html.ValidationMessageFor(model => model.BankCode)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.IBAN)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.IBAN)
@Html.ValidationMessageFor(model => model.IBAN)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.SWIFT)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.SWIFT)
@Html.ValidationMessageFor(model => model.SWIFT)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.BIC)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.BIC)
@Html.ValidationMessageFor(model => model.BIC)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Owner)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Owner)
@Html.ValidationMessageFor(model => model.Owner)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
</div>
Mein Problem ist jetzt sobald ich den Submit Button drücke, dass die Partial View nicht neu aufgebaut/aktualisiert wird. In meinem rudimentären Test-Szenario schreibe ich die Uhrzeit bei Owner rein, aber auf der gerenderten HTML Seite steht nur die Zeit seit dem "letzten Seitenaufruf", also nicht die Zeit als ich den Submit Button geklickt habe. Ein Ajax.BeginForm brachte ebenfalls nichts (siehe Code)...
Wäre für jede Hilfe dankbar.
Hast Du Dir mal die Mühe gemacht - was man auch erwarten kann - und mit Firefox und Firebug nachvollzogen, was überhaupt gesendet und empfangen wird, ob es irgendwelche Fehler oder Meldungen gibt?
Damit findet man nämlich solche Probleme sehr schnell und eigenständig raus.
Zudem empfiehlt Microsoft Plain-jQuery zu nutzen, da die eigenen Implementierungen nicht in einem verhältnismäßig akzeptablen Zyklus aktualisiert werden.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ja, habe ich....Es wird ein Post ausgelöst, deshalb steht auch in der DB der aktuelle Wert. Laut Firebug wird alles aus dem Cache gelesen, denke ihm fehlt hier der GET oder so.
Natürlich weiß ich nicht, ob mein Vorhaben generell funktioniert, deshalb auch mein Posting.
Naja ich muss ehrlich sagen, dass ich bisher nur plain-jQuery genutzt habe.
Bei POST-Anfragen wird nichts gecached. Jedenfalls nicht auf der Client-seite.
Springt die Anwendung überhaupt in den korrekten Punkt der Anfrage?
Wenn ja liegts ja nicht an Javascript, sondern viel eher an Deiner Datenbankschnittstelle.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code