簡體   English   中英

客戶端驗證無法通過數據注釋進行; 服務器端

[英]Client-side validation not working from data annotations; server-side does

我無法讓客戶驗證在Web表單上工作。 我包括.js文件,並在web.config中包含相關行,但客戶端沒有將數據驗證放入HTML中。

正在應用到頁面的我的布局看起來像

<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />

<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript" ></     script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript" ></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript" ></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript" ></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcValidation.js")" type="text/javascript"></script>
</head>

我的web.config文件具有以下內容:

<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
<add key="webpages:Enabled" value="false" />
</appSettings>

我頁面的viewmodel具有正確的批注,並且已在服務器端正確驗證

[DisplayName("Url")]
[DataType(DataType.Url, ErrorMessage = "Invalid Url")]
[StringLength(30)]
[Required]
public string url { get; set; }

[DisplayName("Email")]
[DataType(DataType.EmailAddress, ErrorMessage = "Invalid Email Address")]
[Required]
public string email { get; set; }

最后,我在頁面中包含以下HTML:

<div class="conLine">
@Html.LabelFor(m=> m.url):  @Html.TextBoxFor(m => m.url) 
@Html.ValidationMessageFor(m => m.url)
</div>
<div class="conLine">
@Html.LabelFor(m=> m.email):  @Html.TextBoxFor(m => m.email) 
@Html.ValidationMessageFor(m => m.email)
</div>

該部分頁面的HTML輸出如下所示:

<div class="conLine">
<label for="url">Url</label>
: 
<input class="input-validation-error" id="url" name="url" type="text" value=""/>
<span class="field-validation-error">The Url field is required.</span>
</div>

我快要結束了。 任何幫助將不勝感激!

您應該將這些代碼包裝在Html.BeginForm中

@using (Html.BeginForm()) {
    <div class="conLine">
    @Html.LabelFor(m=> m.url):  @Html.TextBoxFor(m => m.url) 
    @Html.ValidationMessageFor(m => m.url)
    </div>
    <div class="conLine">
    @Html.LabelFor(m=> m.email):  @Html.TextBoxFor(m => m.email) 
    @Html.ValidationMessageFor(m => m.email)
    </div>
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM