【问题标题】:Make a property required/not required depending, when you have two submit buttons当您有两个提交按钮时,根据需要/不需要设置属性
【发布时间】:2015-03-09 17:24:27
【问题描述】:

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

            <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());
        }
    }

我知道我可以通过在我的视图模型上使用数据注释来设置某些属性,但是我只希望在用户尝试解析时需要这些特定属性,保存应该没有这样的限制。

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

更新

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";
});

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

【问题讨论】:

  • 你一定要试试this问题中的答案。
  • 我已经在这个编辑页面使用了一个视图模型,我需要能够在这个页面上解析和保存,所以在这里拆分模型对我不起作用
  • “保存应该没有这样的限制” - 你有没有考虑过让你的保存按钮只是一个按钮而不是提交按钮?
  • 两个提交按钮都需要将表单数据回传到服务器
  • @SelectDistinct 以供将来参考,您仍然可以在没有提交按钮的情况下发布到服务器。只需手动执行 ajax 发布并序列化表单即可。

标签: c# asp.net-mvc


【解决方案1】:

jQuery Validation plugin: disable validation for specified submit buttons

唉,就像给我的“保存”按钮一样简单,cancel 的类在那里浪费了几个小时。

【讨论】:

    【解决方案2】:

    尝试使用以下来源的RequiredIf:

    https://foolproof.codeplex.com/

    正是你需要的

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 2012-03-14
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多