1

私は MVC 4 を学ぼうとし始めましたが、大雑把にやってみました。VS2010 がデバッグ モードのときにデータベース テーブルからデータを表示するときに Flexigrid を機能させることができましたが、サイトをデプロイすると、flexigrid にレコードがまったく表示されません。私が知る限り、コントローラーにはまったく当たっていません。これを修正する方法についてのアイデアが不足しています....

            $('#MySkillList').flexigrid({
        url: '/Home/ListMySkills',
        dataType: 'json',
        colModel: [
            {
            display: 'SkillName',
            name: 'SkillName',
            width: 180,
            sortable: true,
            align: 'left'
        },{
            display: 'SkillID',
            name: 'SkillID',
            width: 100,
            sortable: true,
            align: 'left',
        },{
            display: 'PersonID',
            name: 'PersonID',
            width: 100,
            sortable: true,
            align: 'left',
        },{
            display: 'Validated',
            name: 'Validated',
            width: 100,
            sortable: true,
            align: 'left'
        }],
        sortname: "SkillName",
        sortorder: "asc",
        usepager: true,
        title: 'My Skills',
        useRp: true,
        rp: 15,
        showTableToggleBtn: true,
        width: 600,
        height: 200
    });

コントローラ

    public ActionResult ListMySkills(FreeLancererSkills fModel)
    {
        string GUID = LoginGuid;
        string SQL = "EXEC FreelancerSkills_Get '"+GUID+"'";

        DBLayer DBL = new DBLayer();
        DataSet DS = DBL.GetData(connString, SQL);

        List<FreeLancererSkills> iList = new List<FreeLancererSkills>();

        var model = new FreelancerSkillsCollection();
        int i = 1;

        foreach(DataRow DR in DS.Tables[0].Rows)
        {
            FreeLancererSkills iSkills = new FreeLancererSkills();

            iSkills.LoginGuid = GUID;
            iSkills.PersonID = DR["PersonID"].ToString();
            iSkills.SkillID = DR["SkillID"].ToString();
            iSkills.SkillName = DR["SkillName"].ToString();
            iSkills.Validated = DR["Validated"].ToString();

            iList.Add(iSkills);

            i++;
        }


        TempData["LoginToken"] = GUID;
        return JsonResult(iList.ToList(), 1, i);
    }

    private JsonResult JsonReturn(List<FreeLancererSkills> items, int page, int total)
    {
        return Json(
                new
                {page, total, rows = items.Select(x => new
                           {
                                id = x.SkillID,
                                // either use GetPropertyList(x) method to get all columns 
                                cell = new object[] { x.SkillName, x.SkillID, x.PersonID, x.Validated }
                            })
                }, JsonRequestBehavior.AllowGet);
    }

うまくいけば、誰かが何が起こっているのかを理解するのを手伝ってくれるでしょう。

4

1 に答える 1

0

Chrome を使用している場合は、 にリソースに対する http リクエストがあるかどうかを確認でき/Home/ListMySkillsますF12->Network tab。これをチェックしてください 。

別のチェック ポイントを使用firebugして、データをロードするページ内にエラーがないかどうかを確認します。

または、flexigrid.js のメソッドpopulate関数をデバッグして、コードがどうなるかを確認できます。

于 2013-04-29T08:16:04.660 に答える