如何将数据从一个局部视图传递到另一个局部视图?

时间:2014-02-01 04:40:36

标签: asp.net-mvc model-view-controller

我正在开发MVC中的应用程序。

我有一个视图,其中我绑定了两个部分视图。

我想要做的是,我想将数据从一个局部视图传递到另一个局部视图。

在下面的示例中,产品列表局部视图给出了产品清单的总价格以及我要传递到税务局部视图以计算总价值税的总额。

它应该在运行时完成。

怎么做?

enter image description here

我的父母观点

    @model CRMEntities.Quotation
    @{
    }

     <span class="ProductForm row-fluid">
     @Html.Action("QuotationRelatedProductList", "Quotation", new { Id = @Model.Id })
     </span>
Product Partial View
    @model IEnumerable<CRMEntities.QuotationProduct>

    <div id="divOpportunityProduct">
        @if (Model != null)
        {
            i = 0;
            foreach (var item in Model)
            {
 <input class="clsPrice" name='ProductPrice' type='text' id='txtPrice-@i' value="@EachProdPrice" style='font-size:12px;width:50px;margin-left:12px;' @*readonly="true"*@/>

<input name="Total" class="clsTotal" type='text' id='lblTotal-@i' style ='font-size:12px;width:50px;margin-left:14px;' @*readonly="true"*@/>
            }
        }        

<div class="pull-left row-fluid" style="margin-top: 5px;">@Html.TextBox("txtGrandTotal", null, new {style="width:110px;"})</div>


<script type="text/javascript">

  function GetGrandTotal() {
        var AddTotal = 0;
        var EachTotal;
        $('input.clsTotal').each(function (index) {

            var d = "lblTotal-" + index;

            EachTotal = $('#' + d).val();

            var y = new Number(EachTotal);

            AddTotal = (AddTotal + y);

        });

        $("#txtGrandTotal").val(AddTotal);

    }

</script>

现在,上面的总值,我想在运行时传递到另一个视图....

1 个答案:

答案 0 :(得分:0)

一个。在服务器(控制器)中计算业务逻辑中的总计。将其与您的视图模型一起传递。将其提供给您的两个部分视图。

B中。部分在服务器上呈现。 Javascript仅适用于完整页面。 JS没有偏见。因此,如果您在一个视图中执行某些JS,则另一个视图也可以使用它 - 将结果保存到全局变量中并从脚本的其他部分访问该变量。但这是一种糟糕的技术。

只需在浏览器中查看结果页面,看看JS是如何在那里工作的。