1

我在我的 asp.net mvc3 应用程序中面临一个普遍问题,即所有部分视图都不会显示我使用数据注释定义的客户端验证错误,例如,我定义了以下数据注释:-

public class Country_Validation
    {
        [Required(ErrorMessage="{0} is required.")]
        [StringLength(30, ErrorMessage="{0} is too long.",MinimumLength=1)]
        public string Description { get; set; }
    }

我有以下将被调用的操作方法,ajax.beginform然后它将返回一个局部视图以创建一个新Country对象:-

public ActionResult Create()
        {
            Country c = new Country();
            return PartialView("_Create",c);
        } 

这将返回以下_Create部分视图:-

@model Medical.Models.Country

<div id = "partialWrapper">
@using (Ajax.BeginForm("Create", "Country", new AjaxOptions
{
    HttpMethod = "Post",
    InsertionMode = InsertionMode.InsertBefore,
    UpdateTargetId = "Countrytable",
    OnSuccess = "clearform"
}))
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Country</legend>
        <div class="editor-label">
        <strong>Country Name:-</strong>
            @Html.EditorFor(model => model.Description)
            @Html.ValidationMessageFor(model => model.Description)
        </div>
            <input type="submit" value="Create" />
    </fieldset>
 }
 </div>

但是如果我尝试country在字段为空的情况下添加一个新对象Description,则不会显示客户端验证错误,而如果我返回常规视图(不是部分),那么所有客户端验证错误都可以正常工作吗?那么可能是什么问题呢?BR

4

1 回答 1

3

我最近遇到了类似的事情。解决方案是在我的内容之前(但在我声明我的模型类型和任何 using 语句之后)将以下内容添加到我的部分视图中:

@{
    ViewContext.FormContext = new FormContext();   
}

您可能还想查看以下链接,该链接涉及为新添加的内容启用验证的 javascript 方面:

http://xhalent.wordpress.com/2011/01/24/applying-unobtrusive-validation-to-dynamic-content/

于 2012-04-22T03:09:05.370 回答