1

MVC 3 で jTables を試していますが、問題が発生しました。ページが読み込まれると、[HttpPost] メソッドへの呼び出しがありません。このため、「データベースへの接続エラー」メッセージが引き続き表示されると思います。

[HttpPost] メソッドが呼び出されない理由を誰か説明できますか? 関連するコードは次のとおりです。

    <div id="CompetitionTable""></div>

<script type="text/javascript">

    $(document).ready(function () {

        //Prepare jtable plugin
        $('#CompetitionTable').jtable({
            title: 'The Events List',
            paging: true, //Enable paging
            pageSize: 10, //Set page size (default: 10)
            sorting: true, //Enable sorting
            defaultSorting: 'Name ASC', //Set default sorting
            actions: {
                listAction: '@Url.Action("EventList", "CompetitionController")'
            },
            fields: {
                EventID: {
                    key: true,
                    create: false,
                    edit: false,
                    list: false
                },
                EventName: {
                    title: 'Name',
                    width: '15%'
                },
                CompetitorEmail: {
                    title: 'Email address',
                    list: false
                },
                CompetitorName: {
                    title: 'Competitor',
                    width: '15%',
                },
                Score: {
                    title: 'Score',
                    width: '10%',
                }
            }
        });

        //Load list from server
        $('#CompetitionTable').jtable('load');
    });

</script>


 [HttpPost]
        public JsonResult EventList(int compId)
        {
            try
            {
                //Get data from database
                List<Event> events = Event.getEventsByCompetitionId(compId);

                //Return result to jTable
                return Json(new { Result = "OK", Records = events});
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
4

2 に答える 2

0

listActionを呼び出す方法が間違っています。このように呼び出す必要があります'/CompetitionController / EventList'

于 2012-08-16T04:57:57.217 に答える
0

MVC アクションは parameter を待機します(compId)。しかし、あなたの lisAction はそれを提供しません:

リストアクション:'@Url.Action("EventList", "CompetitionController")'

それは次のようなものでなければなりません:

リストアクション:'@Url.Action("EventList", "CompetitionController")compId=5'

おそらく、このテーブルは競技ごとに動的に入力され、サーバー側で認識されます。したがって、次のようにする必要があります。

リストアクション:'@Url.Action("EventList", "CompetitionController")compId=@ViewBag.compId'

compId確かに、このビューのアクションを設定する必要があります。

于 2013-01-29T14:45:03.557 に答える