我在我的應用程序中構建驗證表單。在這種形式中有兩個按鈕。一個接受,一個拒絕。當用戶按拒絕時,必須提供拒絕原因字段。我檢查這個serverside。 我首先檢查按下了哪個按鈕,然後如果該字段爲空,則向modelstate添加moddel錯誤。但是,因爲表單中的所有字段都是隻讀的,所以這些字段不會發布回服務器,因此,當我將視圖返回給用戶時,沒有數據。我可能錯過了一些明顯的東西,但無法找到該做什麼。 (我知道我可以在我的形式各領域隱藏的,但由於大量的領域,這將是十分可怕的)asp.net mvc Serverside驗證不返回數據
這是我的代碼。
[HttpPost]
public virtual ActionResult Validate(string action, Record dto) {
if(action == Global.Accept) {
ciService.Store(dto);
return RedirectToAction("Index", "Ci");
} else {
if(string.IsNullOrEmpty(dto.RejectionReason)) {
ModelState.AddModelError("RejectionReason", "REQUIRED!!!!");
return View("Validate", dto);
}
ciService.Reject(dto);
return RedirectToAction("Index", "Ci");
}
}
我可以建議做兩個行動方法,一個接受和一個拒絕。名爲Validate的動作似乎不適合做ciService.Store(dto); – labroo 2012-03-07 17:41:16
'readonly'字段是什麼意思?有'readonly'和'disabled'屬性可以在你的輸入標籤上使用嗎?這是你在說什麼嗎?請注意,雖然這兩個屬性都阻止用戶修改這些字段中的值,但不同之處在於,只讀輸入字段仍將其值發佈到服務器,而「禁用」字段則不是這種情況。 – 2012-03-07 17:42:00
@DarinDimitrov我認爲他意味着模型類上的字段是隻讀的。默認MVC模板然後只顯示它們作爲文本而不是HTML表單字段 – 2012-03-07 17:43:53