Validation MVC3/Razor客户端验证未启动

Validation MVC3/Razor客户端验证未启动,validation,asp.net-mvc-3,client,razor,Validation,Asp.net Mvc 3,Client,Razor,我正在尝试使用数据注释在MVC3中进行客户机验证。我已经看过类似的帖子,包括这篇文章来寻找答案 我使用的是EF数据模型。我创建了一个类似这样的部分类用于验证 [MetadataType(typeof(Post_Validation))] public partial class Post { } public class Post_Validation { [Required(ErrorMessage = "Title is required")] [StringLength

我正在尝试使用数据注释在MVC3中进行客户机验证。我已经看过类似的帖子,包括这篇文章来寻找答案

我使用的是EF数据模型。我创建了一个类似这样的部分类用于验证

[MetadataType(typeof(Post_Validation))]
public partial class Post
{

}

public class Post_Validation
{
    [Required(ErrorMessage = "Title is required")]
    [StringLength(5, ErrorMessage = "Title may not be longer than 5 characters")]
    public string Title { get; set; }

    [Required(ErrorMessage = "Text is required")]
    [DataType(DataType.MultilineText)]
    public string Text { get; set; }

    [Required(ErrorMessage = "Publish Date is required")]
    [DataType(DataType.DateTime)]
    public DateTime PublishDate { get; set; }
}
我的cshtml页面包括以下内容

<h2>Create</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Post</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Title)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Title)
            @Html.ValidationMessageFor(model => model.Title)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Text)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Text)
            @Html.ValidationMessageFor(model => model.Text)
        </div>
}
创建
@使用(Html.BeginForm()){
@Html.ValidationSummary(true)
邮递
@LabelFor(model=>model.Title)
@EditorFor(model=>model.Title)
@Html.ValidationMessageFor(model=>model.Title)
@LabelFor(model=>model.Text)
@EditorFor(model=>model.Text)
@Html.ValidationMessageFor(model=>model.Text)
}
Web配置:

<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

布局:

<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>

@视图包。标题


因此,多行文字注释起作用并创建文字区域。但是,所有的验证都不能在客户端工作。我不知道我可能错过了什么。有什么想法吗??如果需要,我可以发布更多信息。谢谢

尝试使用public对象声明:

public class Post_Validation
{
    [Required(ErrorMessage = "Title is required")]
    [StringLength(5, ErrorMessage = "Title may not be longer than 5 characters")]
    public object Title { get; set; }

    [Required(ErrorMessage = "Text is required")]
    [DataType(DataType.MultilineText)]
    public object Text { get; set; }

    [Required(ErrorMessage = "Publish Date is required")]
    [DataType(DataType.DateTime)]
    public object PublishDate { get; set; }
}
1.) 尝试将以下内容添加到要验证的视图中

HtmlHelper.ClientValidationEnabled = true;
HtmlHelper.UnobtrusiveJavaScriptEnabled = true;
我认为没有必要修改Web.config,因此您可以删除它

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

这确实有效,但我的问题是我在Views\web.config中有appsettings,而不是root\web.config。我不确定它们是怎么混在一起的,因为默认项目将它们放在根配置中,但这让我很困惑。嗨,这可能不再是活动的,但我只想问你如何解决这个问题?我在这里面临着完全相同的问题,但我的问题是无法获得文本字段的验证。有什么想法吗??谢谢
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}