asp.net-mvc - ASP.NET MVC Razor - 所有表单字段都是必需的?

标签 asp.net-mvc forms razor jquery-validate required

我有一个由 ASP.NET 生成的表单。
我有一些必填字段,我为此使用了 [Required] dataAnnotation。
但是,根据我的网页,没有 [Required] DataAnnotation 的元素也是必需的。这些根本不是必需的,但如果它们是空的,我将无法提交表单。

我使用脚手架制作页面,使用 jquery 验证器(默认情况下)进行验证。

模型类(为清楚起见省略了某些字段)

public class Room
{
    [Key]
    public int ID { get; set; }


    [Required(ErrorMessage = "Please enter the minimum (default) price for this room.")]
    [DataType(DataType.Currency)]
    [Display(Name = "Minimum price")]
    public decimal MinPrice { get; set; }

    [Display(Name = "Alternative price")]
    [DataType(DataType.Currency)]
    public decimal AltPrice { get; set; }
}

在 de .cshtml 文件中创建表单字段的代码:
    <div class="form-group">
        @Html.LabelFor(model => model.MinPrice, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.MinPrice)
            @Html.ValidationMessageFor(model => model.MinPrice)
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.AltPrice, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.AltPrice)
            @Html.ValidationMessageFor(model => model.AltPrice)
        </div>
    </div>

必填字段正确显示定义的错误消息(因此它读取注释)。
非必填字段显示一般错误消息(“替代价格字段是必需的。”)。

我已经搜索了很多,但到处都说如果 [Required] DataAnnotation 不存在,则表单中将不需要它。

最佳答案

使非必填字段可以为空。

关于asp.net-mvc - ASP.NET MVC Razor - 所有表单字段都是必需的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22891690/

相关文章:

javascript - 文本区域占位符消息

c# - 更改 mysql 数据库中的值行而不是添加

c# - 我应该从服务层或几乎任何方法返回什么

html - 如何右对齐对象下的表单按钮?

javascript - 使用嵌套布局在一个部分中呈现所有 Javascript 代码

c# - 为什么 jqueryval 包呈现为空?

带有一些 Razor 的 Javascript 无法在外部工作

javascript - Model.Isvalid 在我的 MVC 4 应用程序中失败。如何解决这个问题?

asp.net-mvc - asp.net mvc 用户负载测试

css - iPad 上的表单验证和设计