2017-07-18 140 views
1

我有這樣的代碼:模型驗證與參數

//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... 
} 

所以,如果傳遞的數據是錯誤的模型驗證失敗,返回的數據註解obj的,問題是,我失去了我的參數在網址。

編輯網址是http://xxx/controller/Edit/1234和下一個是http://xxx/controller/Edit(不帶參數)

+0

嘗試 返回查看() 而不是返回查看(MyObj中) –

+0

NOP System.NullReferenceException閱讀模式和網址沒有參數 – Santiago

+0

這看起來像是在我的html.beginform上設置的路由值 – Slicksim

回答

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

但ViewBag.Obj = myobj;不是@Model對象,我不確定你是否也得到錯誤的驗證消息,以顯示它在視圖 – Santiago

+0

你試過嗎? – Rise