2012-08-01 2 views
0

보기에서 webgrid 및 layout = null을 제거하면 해당 실행 및 클라이언트 측 유효성 검사 메시지가 표시됩니다 ... 그러나 레이아웃 = 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); 

     } 

보기 : 모델이 null의 경우 격자를 숨기려면

@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

's.Searching()'은 무엇을 반환합니까? 'List', ?? – Yasser

+0

검색은 클래스에서 작성된 함수이며 값을 해당 함수에 목록으로 전달합니다. – Sham

+0

함수가 반환하는 'List '는이 제연입니까? – Yasser

답변

0

, 당신은 if 문을 넣을 수 있습니다 나는 모델이 null인지 검사하는 n ... ie.

if (model != null) 
{ 
    // Make and populate grid here 
} 
관련 문제