MVCは、PartialView部分によるリフレッシュページのロード

2570 ワード

1.TaskBoardDetailを新規作成します.cshtml、内容は以下の通りです:(主に自分の必要なデータを表示します)
@{
    int i = 0;
}
@foreach(var item in ViewBag.DataList)
{
    
@foreach (var it in item) {

@it.functionName


}
i++; }

2.HomeController.csに取得データを追加する
TaskBoardDetailメソッドは、パラメータを持っていても持っていなくても、自分のニーズに応じて
[HttpPost]
        public ActionResult TaskBoardDetail(string value)
        {
            try
            {
                IEnumerable> taskGroup = list.GroupBy(p => p.projectName);
                foreach (var item in taskGroup)
                {
                    if (value==item.Key)
                    {
                        List list2= item.ToList();
                        var query = from p in list2 orderby p.priority select p;//      
                        list2 = query.ToList();
                        IEnumerable> taskGroup2 = list2.GroupBy(p => p.group);
                        ViewBag.DataList = taskGroup2;
                        break;
                    }
                }
                return PartialView("TaskBoardDetail");
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }

TaskDetailは私がカスタマイズしたクラスです.この関数の主な目的はView.DataListは値を割り当て、return PartialView(「TaskBoardDetail」);
3.Indexページでボタンをクリックし、TaskBoardDetailのロード内容をリフレッシュします.TaskBoardDetailコンテンツを受け取るためのdivを配置します.
脚本如下:

        
        $(document).ready(function () {
            $("input[type='button']").click(function () {
                $.ajax({
                    url: "Home/TaskBoardDetail",
                    type: "Post",
                    data: { "value": $(this).val()},
                    success: function (data) {
                        $("#Selector").html(data);},
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("    :" + errorThrown);
                    }
                });
            });
        });

    

OK!ページの更新に成功しました.