2009-08-26 22 views
0

我有一個編輯的形式,即貼的時候,如果成功的話應該移動到下一個記錄表單值不改變對ASP MVC

這裏是控制器的代碼片段:

if (issues.Count == 0) 
    { 
     Service.Save(item); 
     Service.SaveChanges(); 
     return Edit(NextId, listingName); 
    } 
    else 
    { 
     ModelState.AddRuleViolations(issues); 
    } 

    return Edit(item.id, listingName); 

下一條記錄的id已正確傳遞給操作,但自動生成的表單仍舊具有舊項目的值,而不是新項目的值。我已經調試它,並且該項目正在加載並傳遞給視圖罰款。

回答

2

嘗試做的,而不是直接返回查看一個RedirectToAction。

return RedirectToAction("Edit", new { id = NextId, listingName = listingName }); 

此外,您在這兩種情況下(驗證錯誤和成功)發送的listingName相同的值。它是否正確?

1

你試過顯式返回Edit View而不是返回方法調用嗎?

像這樣:

return View("Edit", NextId); 

也許它仍然包含舊帳值,並試圖重新填充相應的模型......

+0

我將如何傳遞NextId和listName參數?似乎不能找到一個方法簽名.. – qui 2009-08-26 14:13:38

+1

一個建議是將它們包裝在一個特定的模型類,很像Scott Guthrie的Nerddinner應用程序中的DinnerFormViewModel。你可以在這裏找到更多的信息http://nerddinnerbook.s3.amazonaws.com/Part6.htm – Robban 2009-08-26 18:56:23