制备场如Razor视图所需(Making a field as required in Razor

2019-09-01 09:02发布

我想打一个文本框字段在Razor视图必需的。 我可以不使用验证属性[Required]因为字段名是动态生成的。 我检查这个答案这台data-val-required领域true使用JavaScript。 是否有任何其他方式做到这一点,因为我不会被知道运行项目前场ID?

编辑:

我想下面的代码和现在的工作,除了在表单提交不显示验证消息。

@for (int i = 0; i < Model.Controls.Length; i++)
{
            @Html.TextBoxFor(x => x.Controls[i].Value, new { id = obj.VitalName,  data_val_required = "true" })
            @Html.ValidationMessageFor(x => x.Controls[i].Value, "Please fill in the details.")
        </td>
    </tr>
}

Answer 1:

使用@required = true内部HTML属性,而不是data_val_required = "true"

@Html.TextBoxFor(x => x.Controls[i].Value, new { id = obj.VitalName,  @required = true })


Answer 2:

如果字段中的部分类生成的,你可以实现一个哥们类的领域中的元数据,如下所示: 链接 。 如果由ORM(实体框架例如)所产生的代码所生成的类应该是局部的。 所以,你需要做的是以下几点:

  1. 创建一个类来保存元数据,给它一个合适的名字。
  2. 创建部分类(usethe同一命名空间生成的类),并与MetadataType属性装饰。 该属性需要一个类型,这是您刚才创建的类。
  3. 属性添加到元数据类。 他们必须完全匹配在生成的类属性,但你没有复制的所有属性,只是你需要的人。 所以,如果你只想做一个属性“姓”要求,只需添加

    [必填]公共字符串姓氏{获得;设置; }

你的课



Answer 3:

只是对于那些谁正在努力实现它通过@ Html.EditorFor,现在看来,这是不可能通过一些htmlAttributes,不要误以为“additionalViewData”与“htmlAttributes”就像我现在做了2小时:@



文章来源: Making a field as required in Razor view