2017-07-18 4 views
1

Ich habe diesen Code:Modellvalidierung mit Parametern

//Edit page 
public ActionResult Edit(string id) 
{ 
    MyObj myobj = db.MyObj.First(s=>s.id == id); 
    return View(myobj); 
} 

//Save the edition 
[HttpPost] 
public ActionResult Edit(string id, MyObj myobj) 
{ 
    if(!ModelState.IsValid) return View(myobj); 
    //Continue saving... 
} 

Also, wenn die übergebenen Daten falsch ist die Modellvalidierung fehlschlägt und die obj mit der Daten Anmerkung zurückgeben, das Problem ist, dass ich meine Parameter in der verloren url.

URL bearbeiten ist http://xxx/controller/Edit/1234 und die nächste ist http://xxx/controller/Edit (ohne Parameter)

+0

versuchen return View() statt return View (myobj) –

+0

Nop System.NullReferenceException Lesen Modell und die URL ohne den Parameter – Santiago

+0

Das sieht so aus, als ob es auf die Route Werte auf dem html.beginform zu mir – Slicksim

Antwort

0
public ActionResult Edit(string id, MyObj myobj) 
{ 
    if(!ModelState.IsValid){ 
    ViewBag.Obj=myobj; 
    return RedirectToAction("Edit",new{id=id}); 
    } 
    //Continue saving... 
} 
+0

Aber ViewBag.Obj = myobj; ist nicht das @ Model-Objekt, und ich bin mir nicht sicher, ob Sie auch die Überprüfungsmeldungen der Fehler erhalten, um es auf der Ansicht zu zeigen – Santiago

+0

hast du es versucht ???? – Rise

Verwandte Themen