我在我的应用程序中构建验证表单。在这种形式中有两个按钮。一个接受,一个拒绝。当用户按拒绝时,必须提供拒绝原因字段。我检查这个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