ich eine MVC-Anwendung in C# entwickle und mit Blick auf ein Fehler Objekt Verweis auf eine Instanz eines Objekts nicht gesetzt, ist der Datenfluss wie folgt: -Verwendung derselben Ansicht für Get, Post und Aktualisierungsanforderung in MVC
- Für eine GET-Anfrage gibt es eine Ansicht zurück und nimmt 2 Eingaben von Benutzer- und POST-Anfrage an den Controller, um 2 Datenfelder unten zu aktualisieren. mit TempData
Ansicht
// 2 User input fields
<label>R 12.5 bend length:*</label>
<input type="number" step="any" min="1" name="htlen" class="form-control fcus"/>
@Html.Label("Select Diameter: *")
<select name="diam" class="form-control fcus">
<option value="6.5">6.5</option>
<option value="8">8</option>
<option value="8.5">8.5</option>
</select>
// 2 display fields to Update from controller
@{ var pno = TempData["partDetail"] as PartNo; }
@Html.Label("Total Watts :")@pno.htvotls //<--Showing Error here for GET request
@Html.Label("Part No :") @pno.htvar //<-- Showing Error
Die obige Ansicht ist, hat vier Felder, 2 Felder für die Benutzereingabe und 2 Felder zum Aktualisieren der Daten
Steuerung:
PartNo PartDetails = pno.PartNoCalc(htlen,diam);
TempData["partDetail"] = PartDetails;
return View("ExpertUser", "partDetail");
PartNoCalc (htlen, Durchm) ist eine Funktion die Details erhalten und Speichern des Objekts in TempData
Das Problem ist, dass für die GET-Anforderung die bei Ansicht der pno die TempData genannt ruft ist null
Ich verwende keine stark typisierte Ansicht, da sie nicht in Angular für UI-Rendering integriert werden kann. Danke.
immer überprüfen, ob TempData [ „somevalue“] einen beliebigen Wert hat, bevor sie verwenden, versuchen Sie auch ViewBag oder Viewdata als TempData verwendet, ist kurzlebig und könnte produzieren unerwartete Ergebnisse wie in Ihrem Fall – mahlatse
Versuchen Sie mit einem Viewbag und sehen, ob das Problem verschwindet. Da die Tempdata während einer Anfrage ihre Daten verlieren könnten, auch wenn Sie sagen, dass Sie das gleiche Problem haben, ist es immer noch die Referenz nicht gesetzt? oder ist der Wert der tempdata null? – mahlatse
Danke für das Update, ich habe ViewData und Sert-Werte verwendet, um null und fügte einige Zeilen aber gleichen Fehler hinzu. if (ViewData ["partDetail"] == null || pno.Equals (null)) {pno = null; pno.htvotls = Convert.ToDecimal (null); } } @ pno.htvotls – NoobOwl