将动态值从 jquery 传递到 MVC5 Razor

Pass dynamic value from jquery to MVC5 Razor

我有一个包含 2 个链接/按钮和 1 个网格的 MVC5 页面。由于一些动态显示问题,我不能有超过 1 个网格,所以我正在更改网格的绑定以显示公司信息或公司收入。

效果很好。

现在我有一个导出控件,它将在我的控制器中调用函数 ExportData,但是为了让函数知道要导出哪个数据集,我需要告诉当前绑定了哪些数据。因为 jquery 是客户端而 razor 是服务器端,所以我很难告诉 razor 当前值。

所以我添加了一个名为 'typeOfContent' 的参数,但我该如何填充它的值呢?换句话说,在下面的代码中,我想在 ?????是(CompanyInfo 或 CompanyIncome)。

我认为 Razor 无法读取隐藏 HTML 控件的值? 不确定我还能如何告诉 ExportData 哪种类型的数据当前可见

@model int

<a href="#link1" data-loaded="true" id="btn-link1">Show Info</a>
<a href="#link2" data-loaded="false" id="btn-link2">Show Income</a>
....
 @Html.Hidden("TypeOfContent", "Temp");
 @using (Html.BeginForm("ExportData", "MyController", 
                        new { CompanyID = Model, typeOfContent = ???? }, 
                        FormMethod.Post))
{
   <div id="MyGrid">
      @{Html.RenderAction("MyPartial", "MyController", new { CompanyID = Model});}
   </div>
}
....

<script>
 $(function () {
        bindCompanyInfo();

        $('#btn-link1').on('click', function (e) {
            bindCompanyInfo();
            $('#TypeOfContent').val("CompanyInfo");  
        })
        $('#btn-link2').on('click', function (e) {
            bindCompanyIncome();
            $('#TypeOfContent').val("CompanyIncome");  
        })    

    function bindCompanyInfo() {
       ...
        };
    }

    function bindCompanyIncome() {
      ...           
        };
    }

我认为这可以让您使用 javascript 和 post 设置和重置值。

@model int

<a href="#link1" data-loaded="true" id="btn-link1">Show Info</a>
<a href="#link2" data-loaded="false" id="btn-link2">Show Income</a>
....

@using (Html.BeginForm("ExportData", "MyController", FormMethod.Post))
{
    @Html.Hidden("TypeOfContent");
    @Html.Hidden("CompanyID", Model);

    <div id="MyGrid">
        @{Html.RenderAction("MyPartial", "MyController", new { CompanyID = Model });}
    </div>
}