1

我有一个使用标准 MVC 3.0 模板验证(jquery.validate.min.js 和 jquery.validate.unobtrusive.min.js)的表单。我有一个模型,它由一个带有 [Required] 属性的字符串属性组成,如下所示:

public class TestViewModel
{
    [Required]
    public string Testing { get; set; }
}

我也有一个相应的视图 Test.cshtml,其中包含一个显示字段和验证消息的表单

@model RealEstate.ViewModels.TestViewModel 
@using (Html.BeginForm())
{
    <fieldset>

        <div class="editor-label">@Html.LabelFor(m => m.Testing)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(m => m.Testing)
            @Html.ValidationMessageFor(model => model.Testing)
        </div>

        <p>
            <button type="submit" name="buttonValue" value="Ok">Ok</button>
        </p>
    </fieldset>
}

在控制器中,我按如下方式调用视图:

return View("Test");

问题是,在某些表单中,我注意到验证消息在表单加载后立即显示(而不是在回发之后,正如人们所期望的那样)。在其他形式中,相同的设置运行正常。通过对这个问题的进一步调查,我奇怪地发现行为是由属性名称决定的。例如,如果我将属性命名为“Description”(在模型和视图中),则验证无法正常工作,而如果我将属性命名为“Testing”(如示例中),则一切正常。有没有人遇到过同样的问题?

4

0 回答 0