2016-01-19 3 views
0

Я не могу получить данные на своем веб-сайте. Это мой код контроллера.Невозможно связать webgrid в mvc4 с помощью jquery

public ActionResult Index() 
     { 
      List<tm_grp_group> pm = db.tm_grp_group.ToList(); 
      return View(); 

     } 

     // 
     // GET: /GroupMaster/Details/5 
     public JsonResult GetAllData() 
     { 
      List<tm_grp_group> tm = db.tm_grp_group.ToList(); 
      return Json(tm, JsonRequestBehavior.AllowGet); 
     } 
     public void SaveNew(string grp_name, string grp_description, bool grp_isactive) 
     { 
      tm_grp_group tm = new tm_grp_group(); 
      tm.grp_name = grp_name; 
      tm.grp_description = grp_description; 
      tm.grp_isactive = grp_isactive; 
      db.SaveChanges(); 
     } 

     public void DeleteById(int grp_id) 
     { 
      tm_grp_group pro = db.tm_grp_group.First(x => x.grp_id == grp_id); 
      db.tm_grp_group.Remove(pro); 
      db.SaveChanges(); 
     } 

     public void UpdateEdit(int grp_id, string grp_name, string grp_description, bool grp_isactive) 
     { 
      tm_grp_group pro = db.tm_grp_group.First(x => x.grp_id == grp_id); 
      pro.grp_id = grp_id; 
      pro.grp_name = grp_name; 
      pro.grp_description = grp_description; 
      pro.grp_isactive = grp_isactive; 
      db.SaveChanges(); 
     } 
     public JsonResult GetDataById(int grp_id) 
     { 
      tm_grp_group pro = db.tm_grp_group.First(x => x.grp_id == grp_id); 
      return Json(pro, JsonRequestBehavior.AllowGet); 
     } 
    } 
} 

И это мой код просмотра.

<script src="~/Scripts/jquery-1.7.1.js"></script> 
<script type="text/javascript"> 

function ViewAll() { 
    /////////// Fetch all Method ///////////// 
    $('#tblgrpmaster tbody').html(''); 
    $.ajax(
    { 
     type: 'POST', 
     url: 'GroupMaster/GetAllData', 
     dataType: 'json', 
     data: { id: 'grp_id' }, 
     success: function (ashdata) { 
      var items = ''; 
      $.each(ashdata, function (i, item) { 

       var rows = "<tr>" 
          + "<td >" + item.grp_id + "</td>" 
          + "<td >" + item.grp_name + "</td>" 
          + "<td >" + item.grp_description + "</td>" 
          + "<td >" + item.grp_isactive + "</td>" 
          + "<td ><a href='#' onclick='GetDataEdit(" + item.grp_id + 
          ");'>Edit</a> | <a href='#' onclick='Delete(" + item.grp_id + ");' title='" + item.grp_id + "'>Delete</a></td>" 
          + "</tr>"; 
       $('#tblgrpmaster tbody').append(rows); 
      }); 

     } 
    }); 
} 
$(document).ready(function() { 
    ViewAll(); 
}); 
<table> 
    @Html.Hidden("grp_id") 
    <tr><td>Group Name : </td><td>@Html.TextBox("grp_name")</td></tr> 
    <tr><td>Group Description : </td><td>@Html.TextBox("grp_description")</td></tr> 
    <tr><td>Group IsActive : </td><td>@Html.TextBox("grp_isactive")</td></tr> 
    <tr><td></td><td><a href="#" id="Save" onclick="SaveNew();">Save</a></td></tr> 
</table> 


    <table id="tblgrpmaster"> 
     <thead> 
      <tr> 
       <th align="left" > 
        GroupID 
       </th> 
       <th align="left" > 
        Group Name 
       </th> 
       <th align="left" > 
        Group Description 
       </th> 
       <th align="left"> 
        Group IsActive 
       </th> 

      </tr> 
     </thead> 
     <tbody></tbody> 
    </table> 

Из-за проблем с пространством я не скопировал их для сохранения кода удаления. Всякий раз, когда я запускаю метод индексации индекса, я хочу отображать данные в поле зрения. Но я не могу получить данные в webgrid. Могу я знать, что я здесь не так?

+0

Проверьте консоль. вы обязательно найдете ошибку там. действие не найдено –

+0

Я не получил. Я запускаю метод действия индекса. Я не могу найти ошибку в jquery или в контроллере –

+0

Данные не являются обязательными. Этот метод Viewall не выполняется. –

ответ

0

Изменение Ajax вызова, как это:

$.ajax(
{ 
    type: 'GET', 
    url: 'GroupMaster/GetAllData', 
    dataType: 'json', 
    success: function (ashdata) { 
     var items = ''; 
     $.each(ashdata, function (i, item) { 

      var rows = "<tr>" 
         + "<td >" + item.grp_id + "</td>" 
         + "<td >" + item.grp_name + "</td>" 
         + "<td >" + item.grp_description + "</td>" 
         + "<td >" + item.grp_isactive + "</td>" 
         + "<td ><a href='#' onclick='GetDataEdit(" + item.grp_id + 
         ");'>Edit</a> | <a href='#' onclick='Delete(" + item.grp_id + ");' title='" + item.grp_id + "'>Delete</a></td>" 
         + "</tr>"; 
      $('#tblgrpmaster tbody').append(rows); 
     }); 

    }, 
    error: function(e) 
    { 
     alert(JSON.stringify(e)); 
    } 
}); 

Как вы можете видеть, GetAllData не принимает какого-либо параметра, и это также HttpGet метод, поэтому нужно изменить тип, чтобы получить и удалить часть

данных
+0

Да. Как я могу внести изменения здесь? –

+0

просто замените вас ajax-вызовом, как я показал в ответ –

+0

Тем не менее я не получаю никаких данных в webgrid. Я сделал, как вы сказали. –

Смежные вопросы