2012-02-09 33 views
0

我無法使客戶端驗證在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> 

我的頁面的視圖模型具有正確的註釋和正在驗證正確地在服務器端

[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> 

我對我的機智與這個目的。任何幫助將不勝感激!

+1

什麼問題包裝這些代碼?它看起來像你有DOM元素驗證出現。究竟發生了什麼? – 2012-02-09 03:29:02

+0

我的問題是沒有預期的客戶端驗證。我希望我的投入,看起來像 <輸入類=「輸入驗證錯誤」 ID =「URL」 NAME =「URL」類型=「文本」值=「」預期的數據-VAL =「正則表達式」數據-val-required =「true」/>等等。 – Khelvaster 2012-02-09 17:06:39

回答

3

你應該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> 
} 
相關問題