2012-08-01 91 views
0

当我在视图中删除webgrid和layout = null时,其执行和客户端验证消息正在显示......但是当我使用layout = nlll和Webgrid执行页面时,它显示下面的错误“数据源必须是结合之前可以进行此操作”在mvc3剃须刀中执行页面时如何隐藏webgrid?

控制器:

[AcceptVerbs(HttpVerbs.Get)] 
     public ActionResult Display() 
     { 
       return View(); 
     } 

[AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Display(string brandname) 
     { 

      ShoppingClass s = new ShoppingClass(); 

      var ob= s.Searching(brandname); 

      return View(ob); 

     } 

观点:

@model List<ShoppingCart.Models.ShoppingClass> 
@{ 
    ViewBag.Title = "Display"; 
     Layout = null; 
} 

@{ 
    var grid = new WebGrid(source: Model, defaultSort: "Drug_Code", rowsPerPage: 20); 
} 


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




     @using (Html.BeginForm(null, null, FormMethod.Post)) 
     { 
      for (int i = 0; i < 1; i++) 
      { 
     @* 
      <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>*@ 


      <table><tr><td> @Html.LabelFor(o => o[i].BrandName)</td> 
      <td>@Html.TextBoxFor(o => o[i].BrandName)<div>@Html.ValidationMessageFor(o => o[i].BrandName)</div></td> 
      <td><input type="submit" value="Search" name="Search" /></td></tr></table> 


      } 

     } 

    <div id="grid"> 
    @grid.GetHtml(tableStyle: "listing-border", headerStyle: "gridhead", footerStyle: "paging", rowStyle: "td-dark", alternatingRowStyle: "td-light", 
     columns: grid.Columns(
        grid.Column("GenericName", format: @<text>@item.GenericName</text>), 
        grid.Column("BrandName", format: @<text>@item.BrandName</text>), 
        grid.Column("Purchaseqty", format: @<text>@item.Purchaseqty</text>), 
        grid.Column("Purchaseprice", format: @<text>@item.Purchaseprice</text>), 
        grid.Column("Drug_Code", format: @<text>@item.Drug_Code</text>), 
        grid.Column(header: "", format: (item) => Ajax.ActionLink("Add to Cart", "ADDTOCART", 
        new { brandname = @item.BrandName, purchaseqty = @item.Purchaseqty, drugcode = @item.Drug_Code }, new AjaxOptions { HttpMethod = "Post", OnSuccess = "ADDTOCART" })) 

                           ) 
                           ) 
</div> 
+0

是什么'。搜索()'返回?一个'List',?? – Yasser 2012-08-01 09:21:35

+0

搜索是在类中写入的函数并将该值作为列表传递给该函数 – Sham 2012-08-01 09:24:09

+0

您的函数将返回一个'List '这个礼貌? – Yasser 2012-08-01 09:45:52

回答

0

如果要隐藏网格如果模型为空,那么你可以把一个if语句一世n检查模型是否为空...即。

if (model != null) 
{ 
    // Make and populate grid here 
}