C# 将数据从一个视图传递到另一个视图-MVC

C# 将数据从一个视图传递到另一个视图-MVC,c#,asp.net-mvc-4,model-view-controller,model,C#,Asp.net Mvc 4,Model View Controller,Model,将数据从一个视图传输到另一个视图的最佳方法是什么?还是这种做法不好 原因是我想将@model.count()从一个视图显示到主页,基本上是主页上所有视图的摘要。有tempdata、html.helper等,但我想知道最好、最可靠的方法。这样就避免了进一步的问题 这是有问题的代码 product.cshtml <p>Total amount of Products = @Model.Count()</p> 产品总量=@Model.Count() 基本上,我希望在主页上显

将数据从一个视图传输到另一个视图的最佳方法是什么?还是这种做法不好

原因是我想将@model.count()从一个视图显示到主页,基本上是主页上所有视图的摘要。有tempdata、html.helper等,但我想知道最好、最可靠的方法。这样就避免了进一步的问题

这是有问题的代码

product.cshtml

<p>Total amount of Products = @Model.Count()</p>
产品总量=@Model.Count()


基本上,我希望在主页上显示相同的值,您必须刷新主页才能真正“更新”该值。此时,您还可以将该值作为参数传递回去,但我认为这不是您所希望的

这可能不是最干净的解决方案,但我认为您希望主页上的文本可以通过一些javascript/jquery进行设置

主页上有以下代码段:

<form id="PassBackVals"
<input type="hidden" name="ProductCount" value="0">
</form> 

<script>$( ".ProductCount" ).change(function() {
  $("$CurrentProductCount").text = $(".ProductCount").val;
});
</script>

好的,我研究了其他方法,通过将viewbag后面的代码移到下面的公共方法中解决了这个问题

    [OutputCache(NoStore = true, Location = OutputCacheLocation.Client, Duration = 10)]
    public ActionResult UpdateTotals()
    {
        JobController j = new JobController();
        ViewBag.JobCount = j.JobCount();

        ProductController p = new ProductController();
        ViewBag.ProductCount = p.ProductCount();

        return PartialView("UpdateTotals");
    }
然后我将viewbags添加到部分视图中,并使用setinterval()javascript

    <div id ="UpdateTotals">
        @{ Html.RenderAction("UpdateTotals");}
</div>

@{Html.RenderAction(“UpdateTotals”);}


setInterval($('#UpdateTotals').load('/home/UpdateTotals')”,10000);
我能够根据自己的需要不断刷新数据,而不需要通过javascript在视图中拖拽数据


希望这对将来的任何人都有帮助:)

恐怕没有成功,它在主页上只显示0,而实际上工作计数是24:/
    [OutputCache(NoStore = true, Location = OutputCacheLocation.Client, Duration = 10)]
    public ActionResult UpdateTotals()
    {
        JobController j = new JobController();
        ViewBag.JobCount = j.JobCount();

        ProductController p = new ProductController();
        ViewBag.ProductCount = p.ProductCount();

        return PartialView("UpdateTotals");
    }
    <div id ="UpdateTotals">
        @{ Html.RenderAction("UpdateTotals");}
</div>
<script>
    setInterval("$('#UpdateTotals').load('/home/UpdateTotals')", 10000);
</script>