2013-11-03 74 views
0

我有一個提交頁面將發佈到操作控制器&此操作控制器接受FormCollection僅對象(導致此頁的動態特性)。驗證失敗後從FormCollection重新渲染視圖

現在有一個業務驗證是通過在FormCollection中接收的值完成的,我的問題是,當我發現一個值的錯誤時,我不得不重新渲染視圖與表單集合中收到的值(如何做到這一點???)

+0

您的'ViewModel'是否也是FormCollection? – haim770

+0

不,viewmodel是強類型的類包含問題類的列表&&在視圖中,我基於它的類型輸入每個問題,選擇,文件,....也表單中的每個html元素都有名稱等於問題ID,所以在服務器端,我知道哪個值對應於哪個問題答案 – abdelrady

回答

0

你可以遍歷的FormCollection則值存儲在ViewData

[HttpPost] 
public ActionResult Create(FormCollection collection) 
{ 
    foreach (string key in collection.AllKeys) 
    { 
      ViewData[key] = collection[key]; 
    } 

    return View() 

} 

那麼我認爲你必須鍵入輸入一個

一個字段查看

<input name="address" value="@ViewData["address"]" /> 
<input name="mobile" value="@ViewData["mobile"]" />