2013-03-12 72 views
0

我是ASP.Net MVC的新手。我正在嘗試一個示例程序來將JQGrid與數據綁定。當我從控制器返回JSON數據時,系統彈出「你想保存文件..」我提示我,我相信我的瀏覽器無法理解JSON數據。我在StackOverFlow中瀏覽了其他帖子,他們都沒有幫助我。我在IE8上運行這個設置爲兼容模式。請參閱下面的代碼:將JSON數據返回給JQGrid會提示保存文件

Index.cshtml

@{ 
ViewBag.Title = "Home Page"; 
    } 
    <link href="~/Content/Site.css" rel="stylesheet" type="text/css" /> 
    <link href="~/Content/jquery.jqGrid/ui.jqgrid.css" rel="stylesheet" type="text/css" /> 
    <link href="~/Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" /> 

    <script src="~/Scripts/jquery-1.9.1.min.js" type="text/javascript"></script> 
    <script src="~/Scripts/i18n/grid.locale-en.js" type="text/javascript"></script> 
    <script src="~/Scripts/jquery.jqGrid.min.js" type="text/javascript"></script> 

    <script type="text/javascript"> 
    $(document).ready(function() { 
    $("#myGrid").jqGrid({ 
     url: '../../Home/About/GetJQGridData', 
     datatype: 'json', 
     contentType: 'application/json', 
     myType: 'GET', 
     colNames: ['Id', 'Name'], 
     colModel: [ 
     { name: 'Id', index: 'Id' }, 
     { name: 'Name', index: 'Name' } 
     ], 
     jsonReader: { 
      root: 'Data', 
      id: 'id', 
      repeatitems: false 
     }, 
     pager: $('#myPager'), 
     rowNum: 5, 
     rowList: [2, 5, 10], 
     width: 600, 
     viewrecords: true, 
     caption: 'Jqgrid MVC Tutorial' 
     }); 
    }); 
    </script> 



    <table id="myGrid"></table> 
    <div id="myPager"></div>` 

我的控制器代碼如下:

HomeController.cs

[AcceptVerbs(HttpVerbs.Get)] 
    public ActionResult GetJQGridData() 
    { 
     var jqGridData = new JQGridObject() 
     { 
      Data = GetSomeSampleData(), 
      Page = "1", 
      PageSize = 3, // u can change this ! 
      SortColumn = "Name", 
      SortOrder = "asc" 
     }; 

     return Json(jqGridData, JsonRequestBehavior.AllowGet); 
    } 

    public List<Fruit> GetSomeSampleData() 
    { 
     return new List<Fruit> 
     { 
     new Fruit{Id = 1, Name = "Apple" }, 
     new Fruit{Id = 2, Name = "Melon" }, 
     new Fruit{Id = 3, Name = "Orange" }, 
     new Fruit{Id = 4, Name = "Grapes" }, 
     new Fruit{Id = 5, Name = "Pineapple" }, 
     new Fruit{Id = 6, Name = "Mango" }, 
     new Fruit{Id = 7, Name = "Bannana" }, 
     new Fruit{Id = 8, Name = "Cherry" } 
     }; 
    } 

任何幫助將是非常讚賞。 感謝

回答

1

,在跳出我的第一件事情是,你的控制器/視圖被引用不正確

url: '../../Home/About/GetJQGridData', 

應該

url: '/Home/GetJQGridData', 

你不應該需要設置一個jsonReader以及在客戶端。

+0

這是問題所在。謝謝馬克。 – siv 2013-03-12 18:11:54

+0

很高興我能幫忙,請標記爲正確。 – Mark 2013-03-12 18:26:42

+0

@sivshan:如果現在問題得到解決,您應該[「接受」](http://meta.stackexchange.com/a/5235/147495)答案。 – Oleg 2013-03-12 20:10:43