簡體   English   中英

如何將值從控制器動作方法傳遞到局部視圖

[英]How to pass value from controller action method to partial view

在這里,我嘗試使用TempData將數據從控制器操作方法傳遞到局部視圖。 但這行不通。

我的控制器代碼

public class PropertyController : Controller
{
    public ActionResult Index()
    {
        return View();
    }


    public ActionResult GetRequestReport()
    {
        List<ReportsInfo> reportsList = reportsManager.GetRequestReport(UserName, Locality, "usp_GetResults");
    int count = reportsList.Select(x => x.UserId).Distinct().Count();
    TempData["Count"] = count;
        return PartialView("_Partial1", reportsList);
    }

    public ActionResult Test(string id)
    {
        switch (id)
        {
            case "tab1":
                return PartialView("_Results");
            case "tab2":
                return PartialView("_Results2");
        }

        return new EmptyResult();
    }

}

Index.cshtml

<div id="div-for-partial">
                </div>


    $(function () {
        $('.tab').click(function () {
            var id = this.id;
            $.get('@Url.Action("Test")', { "id": id }, function (data) {
                $('#div-for-partial').html(data);
                $('.mvc-grid').mvcgrid();
            });
        });
    });

_結果局部視圖

   @TempData["Count"]
<br />
 <div id="reportList">
                    @Html.AjaxGrid(Url.Action("GetRequestReport", "Property"))
                </div>

_Partial1局部視圖

@model Project.Models.ReportsInfo
@(
        Html.Grid(Model)
            .Build(columns =>
            {

                columns.Add(model => model.ApproverName).Titled("Approver Name");

            })
            .Empty("No records found.")
            .Sortable()
            .Pageable(pager =>
            {
                pager.RowsPerPage = 15;
            })
)

我什至嘗試過查看包,但沒有運氣可以實現它。 基本上我想在TempData中傳遞結果計數並在局部視圖中使用

public ActionResult GetRequestReport()
    {
        List<ReportsInfo> reportsList = reportsManager.GetRequestReport(UserName, Locality, "usp_GetResults");
    int count = reportsList.Select(x => x.UserId).Distinct().Count();
    ViewData["Count"] = count;
        return PartialView("_Partial1");
    }

在Partial1部分視圖中,您可以在count變量中獲得count,如下所示,並可以在任何需要的地方使用它。

@(
        int count=(int)ViewData["Count"];

        Html.Grid(Model)
            .Build(columns =>
            {

                columns.Add(model => model.ApproverName).Titled("Approver Name");

            })
            .Empty("No records found.")
            .Sortable()
            .Pageable(pager =>
            {
                pager.RowsPerPage = 15;
            })
)

您從未在調用Results局部視圖之前調用過GetRequestReport(),您如何期望獲得傳遞給Results局部視圖的count值。 請驗證您的要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM