【问题标题】:Using unobtrusive validation with two submit buttons, with no validation for one [duplicate]使用带有两个提交按钮的不显眼的验证,一个没有验证[重复]
【发布时间】:2016-04-25 06:40:33
【问题描述】:

我目前有一个使用 MVC 5 的表单,带有两个提交/发布按钮——一个用于完成表单(在其他验证中验证必填字段),一个用于保存表单(不需要真正的验证)。它在不包括不显眼的验证的情况下工作正常,但我想使用它......当我这样做时,完成按钮工作正常,但保存按钮就像它是完成按钮一样 - 验证字段不应该是。

有没有办法让这成为可能?

代码sn-ps如下。

查看

{BeginForm code goes here}
@Html.LabelFor(model => model.TotalHours)
@Html.TextBoxFor(model => model.TotalHours)
@Html.ValidationMessageFor(model => model.TotalHours)
...
<input type="submit" value="Finalize" name="btnCreate" />
<input type="submit" value="Save and Quit" name="btnCreate" />

模型(使用 EF)

[Required(ErrorMessage = "Please enter the total number of hours.")]
[Display(Name = "Total Hours")]
public Nullable<decimal> TotalHours { get; set; }

控制器

[ValidateAntiForgeryToken]
[HttpPost]
[MultiBtn(Name = "btnCreate", Argument = "Finalize")]
public async Task<ActionResult> CreateFinalize(FormObj oForm)
{
    using (var dbContext = new DBContext())
    {
        if (ModelState.IsValid) { ... }
        else { return View(oForm); }
    }
}
[ValidateAntiForgeryToken]
[HttpPost]
[MultiBtn(Name = "btnCreate", Argument = "Save and Quit")]
public async Task<ActionResult> CreateFinalize(FormObj oForm)
{
    using (var dbContext = new DBContext())
    {
        // Remove model errors
        foreach (var modelStateVals in ModelState.Values)
            modelStateVals.Errors.Clear();
        // Process the form and save here
    }
}

【问题讨论】:

    标签: jquery asp.net-mvc-5 unobtrusive-validation


    【解决方案1】:

    我发现html中有一些东西可以添加:

    <input class="cancel" />
    

    很遗憾,取消类已被弃用。但现在它使用了 formnovalidate,这正是我所需要的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2013-03-17
    • 2021-03-02
    • 1970-01-01
    • 2014-12-11
    相关资源
    最近更新 更多