2012-08-02 120 views
0

我正在通過List中的List來查看,所以我在這個視圖中指定了這樣的 IEnumerable。在這種情況下客戶端驗證器不點火當使用IEnumerable查看客戶端驗證不起作用時?

查看:

@model IEnumerable<ShoppingCart.Models.ShoppingClass> 
@{ 
    ViewBag.Title = "Display"; 

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

@Html.ValidationSummary(true) 
@using (Html.BeginForm()) 
{ 

    <table> 
     <tr> 
      <td>@Html.Label("BrandName") 
      </td> 
      <td>@Html.TextBox("BrandName") 
       <div> 
        @Html.ValidationMessage("BrandName")</div> 
      </td> 
      <td> 
       <input type="submit" value="Search" name="Search" /> 
      </td> 
     </tr> 
    </table> 

} 
+0

你能提供一些代碼嗎?否則,我們只能說在你的鍵盤上撒了一些仙塵來修復這個問題。 – 2012-08-02 10:29:11

+0

@SimonWhitehead我已經添加了代碼 – Sham 2012-08-02 10:33:27

+0

@ raj2sekar1如果你正在重新發佈一個問題,請考慮刪除你的[舊同樣的問題](http: //stackoverflow.com/q/11772229/1182982) – Yasser 2012-08-02 12:41:51

回答

1

你寫的什麼是錯的。

您已獲得強類型視圖,但未使用強類型屬性或驗證消息。此外,你已經得到了表格之外的驗證摘要..這是行不通的。

@using (Html.BeginForm()) 
@Html.ValidationSummary(true) 

然後,你需要做這樣的事情:

<table> 
    @foreach (ShoppingClass shoppingClass in Model) { 
    <tr> 
     <td>@Html.LabelFor(x => x.BrandName) 
     </td> 
     <td>@Html.TextBoxFor(x => x.BrandName) 
      <div> 
       @Html.ValidationMessageFor(x => x.BrandName)</div> 
     </td> 
    </tr> 
    } 
</table> 
<input type="submit" value="Search" name="Search" /> 

我不知道爲什麼你有一個搜索按鈕,每一個進入到同一個控制器和行動項目..但我會留給你弄清楚。

相關問題