操作方法:编辑表单上的必需输入与默认值保持不变,应该有效

时间:2014-03-24 15:08:26

标签: jquery asp.net-mvc validation

以下是“创建”表单中多个输入之一的示例(注释value为空)。在此上下文中,验证(query.validate.unobtrusive)按预期工作,要求用户填写必填字段以提交表单。

        <div class="form-group">
            <div class="col-sm-offset-1 col-sm-8">
                <input class="form-control" id="LegalName" name="LegalName" type="text" 
                    value="" placeholder="Business Legal Name" 
                    data-val-required="Legal Name is required." data-val="true" />
                <span class="field-validation-valid" data-valmsg-for="LegalName" 
                    data-valmsg-replace="true"></span>
            </div>
        </div>

对于编辑表单,我使用相同的html,但使用其当前值预填充每个输入(在本例中为value="@Model.LegalName"

问题是,即使每个字段都预先填充了一个值,内置验证也会阻止提交表单,并抱怨所填写的字段尚未填写。

我想要的行为是:

  1. 页面上的任何输入都可以保持不变 价值
  2. 用户更改的任何输入都必须&#34;传递&#34;验证 (例如,非空的,适当的电子邮件地址)
  3. 对于Create case,表单验证感觉&#34;自动&#34;因为它只是做正确的事情。是否有类似的&#34;自动&#34;为Edit案例做这个的方法?或者我必须手动(通过编码规则)?

    非常感谢, 埃里克

1 个答案:

答案 0 :(得分:0)

没关系......我今天是个白痴。表单验证位工作得很好。这是模型绑定器的问题......叹息。

那就是说,所以你读这篇文章并不是完全浪费时间,这里有一个有用的金块。

此表单上使用的模型纯粹为了方便而包含一个具有几个自己的[Required]属性的类。这些属性没有在编辑表单上显示,所以它们总是空着。

因此,这个故事的寓意是:小心使用[Required]并同样小心你在视图模型中放置的内容。