2012-11-30 50 views
1

注意到,當view返回因爲validation errors網址仍然指向action更改URL,以主要觀點validation如何在PRG模式返回,因爲驗證錯誤的看法時

例如Edit View存在形式Update行動:

@Html.BeginForm("Update","MyController",FormMethod.Post,new{}) 
{ 
... 
} 

更新動作:

public ActionResult Update(Entity myEntity) 
{ 
    is(ModelState.IsValid) 
    { 
     ... 
     return RedirectToAction("List"); 
    } 

    return View("Edit",myEntity); 
} 

validation失敗這再次顯示了Edit view有錯誤,但地址

.../Update 

我做錯了什麼?如何修復這個?

回答

1

什麼,你會想要做的是不是張貼到「更新」,張貼到你是在相同的動作,但刻度[HttpPost]像下面

[HttpPost] 
public ActionResult Edit(SomeViewModel someViewModel) { 
    is(ModelState.IsValid) 
    { 
     ... 
     return RedirectToAction("List"); 
    } 
    return View(myEntity); 
} 

帶有HttpPost的方法只會在瀏覽器檢測到「發佈」請求時被調用。當用戶通過瀏覽器輸入網址時,這是一個「獲取」請求,因此另一個「編輯」操作將被調用。