0

ASP.NetMVCは初めてです。JQGridをデータにバインドするサンプルプログラムを試しています。コントローラからJSONデータを返すと、「ファイルを保存しますか..」というポップアップが表示されます。ブラウザがJSONデータを理解できないと思われます。StackOverFlowの他の投稿を確認しましたが、どれも役に立たなかったようです。互換モードに設定されたIE8でこれを実行しています。以下のコードを参照してください。

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" }  
        };
    } 

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

1

私に最初に飛び出すのは、コントローラー/ビューが正しく参照されていないことです

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

する必要があります

url: '/Home/GetJQGridData',

クライアントでjsonReaderも設定する必要はありません。

于 2013-03-12T17:19:10.003 に答える