如果有两个提交按钮,则需要/不需要属性

时间:2015-03-09 17:24:27

标签: c# asp.net-mvc

我的表单上有两个提交按钮,一个用于保存,一个用于解析:

            <input type="submit" name="submitButton" value="Save" class="btn btn-default" />
            <input type="submit" name="submitButton" value="Resolve" class="btn btn-default" />

我正在控制器中处理这些问题:

  //POST: Exceptions
    [HttpPost]
    public ActionResult Edit(string submitButton, PersonViewModel personViewModel)
    {
        switch (submitButton)
        {
            case "Save":                    
                return (Save(person));
            case "Resolve":
                return (Resolve(person));
            default:                    
                return (View());
        }
    }

我知道我可以在我的视图模型上使用数据注释来创建某些属性,但是我只希望在用户尝试Resolve时需要这些特定属性,Save应该没有这样的限制。

实现这一目标的最佳方式是什么?

更新

http://weblogs.asp.net/imranbaloch/overriding-unobtrusive-client-side-validation-settings-in-asp-net-mvc-3

以上博客似乎建议你可以在提交之前指定一个你希望被排除在验证之外的输入,方法是给它一个类并添加一些像这样的JS:

<input id="btnSubmitSave" type="submit" name="submitButton" value="Save" class="btn btn-default ignore" />
                    <input id="btnSubmitResolve" type="submit" name="submitButton" value="Resolve" class="btn btn-default" />

$(function () {
    var settngs = $.data($('form')[0], 'validator').settings;
    settngs.ignore = ".ignore";
});

不幸的是,当我点击“保存”按钮时,它仍在尝试验证。

2 个答案:

答案 0 :(得分:0)

jQuery Validation plugin: disable validation for specified submit buttons

叹息,就像给我的保存按钮一样简单,cancel的课程在那里浪费了几个小时。

答案 1 :(得分:0)

尝试使用RequiredIf:

https://foolproof.codeplex.com/

正是您需要的

相关问题