@ Html.ValidationMessage添加前置字段。关键

时间:2017-09-01 11:01:49

标签: c# asp.net-mvc razor validationmessage

我正在尝试使用@Html.ValidationMessage,如下所示:

@Html.TextBox(Model.Key, "", attr)
@Html.ValidationMessage(Model.Key)

但是,我的验证消息未显示。

如果我将Model.Key打印到屏幕上,我会得到“FirstName”,但是如果我查看为上述代码创建的源代码,它会像这样创建它:

<input name="FirstName" class="form__control" data-msg-maxlength="This field is limited to 200 characters" data-rule-maxlength="200" data-rule-required="true" id="FirstName" placeholder="Please enter your first name" type="text" value="">
<span class="field-validation-valid" data-valmsg-for="field.FirstName" data-valmsg-replace="true"></span>

有谁知道为什么它会将field.添加到验证消息范围或我如何摆脱它?

我尝试手动输入:

@Html.ValidationMessage("FirstName")

这似乎仍然是field.

的前缀

更新

使用@Html.EditorFor(_ => field)调用具有文本框和验证消息的部分可能与我有关吗? - 如果我将ValidationMessage放在EditorFor旁边,那么它可以正常工作(但是位置不合适)

1 个答案:

答案 0 :(得分:-1)

就这样做

public class A
    {
        public int id { get; set; }
        [Required(ErrorMessage = "Please Enter Name")]
        public string name { get; set; }
}