2012-02-01 51 views
-1

我的代碼正在創建一個基於xml結構的動態表單。
形式可以包含很多HTML領域,如
文本字段
textarea的 複選框
etc.etc。
將表單呈現爲HTML用戶可以填充數據之後。
在用戶輸入值後,用戶填寫了一些值後,用戶輸入的值是否適當。在我的控制器中通過解析表單集合。
如果輸入的數據有一些錯誤,那麼我使用ModelState.AddModelError("f2k0", "This Field is Required");函數將錯誤添加到ModelState。 但是,當我返回視圖,因爲它是弱類型的我沒有可以返回的對象,因此呈現的表單將丟失,並且用戶填充的值也會丟失。
我無法使用客戶端驗證,因此只需要進行服務器端驗證。保存asp.net中的動態表單數據mvc

編輯 - iam用於驗證的規則保存在TempData中。
EDIT2 - 這是代碼在我看來

@using (Html.BeginForm("SpecialSurveyCode","Scan",new { codeId = ViewBag.CodeId, scanId = ViewBag.ScanId },FormMethod.Post,null)) 
     { 
      <fieldset> 
       @if (Model != null) 
       { 
        for (int i = 0; i < Model.Keys.Count; i++) 
        { 
         var cntrl = Model[i]; 
         ViewDataDictionary cntrlDataDic = new ViewDataDictionary(); cntrlDataDic.Add("cntrlId", 
         i); switch (cntrl.ControlType) 
         { 
          case ControlTypes.input_text: Html.RenderPartial("_Textbox",cntrl, cntrlDataDic); break; 
          case ControlTypes.textarea: Html.RenderPartial("_Textarea",cntrl, cntrlDataDic); break; 
          case ControlTypes.checkbox: Html.RenderPartial("_CheckboxGroup",cntrl, cntrlDataDic); break; 
          case ControlTypes.radio: Html.RenderPartial("_RadioGroup",cntrl, cntrlDataDic); break; 
          case ControlTypes.select: Html.RenderPartial("_SelectList",cntrl, cntrlDataDic); break; 
         } 
        } 
       } 
      </fieldset> 
      <input type="submit" value="Submit" class="formSubmitButton" /> 


     } 


這裏的模型是一個Dictionary<int,cntrlObject>

+0

如果model有效或者它是無效的,您希望返回與值相同的視圖? – 2012-02-01 15:09:34

+0

在這兩種情況下都需要返回相同的視圖 – 2012-02-01 15:10:25

+0

你可以發佈你的視圖/片段嗎? – 2012-02-01 15:20:16

回答

0

嘗試用模型參數返回查看。該方法調用由ModelState值填充的返回視圖。

return View("MyView"); 
+0

試圖像這樣工作..但沒有運氣 – 2012-02-02 06:16:50