模型验证与参数

问题描述:

我有这样的代码:模型验证与参数

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

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