我不确定这是否可行。基本上,这就是我所拥有的。我的表单末尾有3个按钮,取消,保存并提交。所有字段都必须能够提交表单。我使用cancel
类并使用ModelState.Clear()
来解决取消按钮的验证(因为我使用的是客户端和服务器端验证)。
如果用户按下保存按钮,如何只需要一个字段?
我的代码实在太大,无法显示实例,但这里有基础知识:
在我的模型中,所有字段都具有属性[Required]
在我看来,验证显示为@Html.ValidationMessageFor(model => model.Level)
我的控制器按下每个按钮的情况:
if(button == "cancel")
{
ModelState.Clear(); <- This turns off server-side validation
//returns to other page
}
if(button == "save")
{
//save things? <-- Not sure what to do here?
}
if(button == "submit")
{
//submit everything
}
基本上我想关闭除必要字段之外的所有内容的客户端和服务器端验证。
答案 0 :(得分:0)
我自己用javascript回答了这个问题:
首先,我将验证消息切换为我可以控制的消息(因为我无法弄清楚如何自己控制Html.ValidationMessageFor())。
<div class="validate-event-name hidden">Event Name Required</div>
然后我添加了这个javascript函数
$('#newForm').submit(function checkEventName(event) {
if ($('#EventName').val() == "") {
event.preventDefault();
$('.validate-event-name.hidden').removeClass('hidden');
}
});
这显示验证消息而未提交表单。然后我使用ModelState.Clear()
作为控制器中的保存按钮,瞧!
我希望这对某人有所帮助,因为我花了一段时间才弄明白。
(P.S。在没有解释为什么对我没有帮助的情况下向下提问我的问题。这是一个合理的问题!)