2014-02-21 3 views
0

Я использую ASP.NET MVC 4 и C#. Я написал код для отображения данных из webgrid путем извлечения данных из базы данных. Это сработало. Но если есть какой-либо плохой случай, как база данных, сломанная или что-то еще, она не сможет получить данные, поэтому я хочу, чтобы веб-сервер возвращал пустой список или отображал «Нет данных сотрудника» вместо того, чтобы бросать ошибку. Я добавил, если заявление в webgrid, которое кажется не работает. Он по-прежнему бросает ошибку:mvc 4 - как вернуть пустой список из webgrid вместо throwing error

"A data source must be bound bfore this operation can be performed."

Надеется, что вы можете помочь решить мой код, как следующее:

EmployeeController:

var employees = (IEnumerable<Employees>)Session["Employees"] ?? EmployeeService.LoadEmployees(Guid.Empty, string.Empty, null, null, string.Empty, "Error"); 

index.chstml

@grid.GetHtml(
    htmlAttributes: new { id = "grid" }, 
    columns: grid.Columns(
    grid.Column(columnName: "ConvertedId", header: "Employee ID", format: (item) => string.IsNullOrEmpty(item.ConvertedId)?string.Empty:item.ConvertedId), 
     grid.Column(columnName: "Employee Code", header: "Vendor Name", format: (item) => string.IsNullOrEmpty(item.EmployeeCode)?string.Empty:item.EmployeeCode), 
     grid.Column(columnName: "Date", header: "Date", format: (item) => string.IsNullOrEmpty(item.Date.ToString())?string.Empty:item.Date.ToString()), 
     grid.Column(columnName: "Status", header: "Status", format: (item) => string.IsNullOrEmpty(item.Status)?string.Empty:item.Status), 

     )) 

ответ

0

Марки условие n в вашем Index вид, проверив значение Model, также создайте таблицу, когда данные о сотрудниках не найдены, см. ниже:

@model IEnumerable<Employees> 

<div> 
    @if (Model.Any()) 
    { 
     grid.GetHtml(
       // Your existing code here 
      ); 
    } 
    else 
    { 
     <div class="grid"> 
      <table> 
       <thead> 
        <tr> 
         <th>Employee ID</th> 
         <th>Vendor Name</th> 
         <th>Date</th> 
         <th>Status</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr> 
         <td colspan="4" align="center"> 
          No Employee Datafound 
         </td> 
        </tr> 
       </tbody> 
      </table>   
     </div> 
    } 
</div>