2012-08-02 124 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" /> 

我不知道为什么你有一个搜索按钮,每一个进入到同一个控制器和行动项目..但我会留给你弄清楚。

相关问题