我的代碼正在創建一個基於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>
如果model有效或者它是無效的,您希望返回與值相同的視圖? – 2012-02-01 15:09:34
在這兩種情況下都需要返回相同的視圖 – 2012-02-01 15:10:25
你可以發佈你的視圖/片段嗎? – 2012-02-01 15:20:16