将JavaScript值赋予BS Modal,然后将值用作c#变量

时间:2017-11-20 15:10:57

标签: javascript jquery razor modal-dialog

在过去的几天里,这一直困扰着我,并认为我只是在思考问题。我打开一个bs模式对话框,并通过data-id属性传递一个值。可以毫无问题地传递价值;我也可以将它存储在隐藏的字段/ div中。但是,我需要将该值传递给剃刀函数,该函数从数据库中恢复我的其余记录集,并且我没有使用json来检索记录。我可以转换值,但首先必须提交我的表单以从我存储的隐藏字段中获取值。我总是可以将其发布到另一个页面,但这会破坏使用模式的目的。我的问题是,由于2个对象处于不同的状态(服务器/客户端),如何在首次使用ID启动模式时如何捕获ID。在这个例子中,我将值传递给div以及隐藏值。我提交表单后才能捕获隐藏的值!感谢。

 <button class="btn btn-info btn-lg open_mymodal" id="cafeID" data-id="@item.ID" data-toggle="modal" data-target="#myModal" data-yourparameter="@item.ID">Load</button>

  <div id="myModal" class="modal fade" role="dialog">
        <div class="modal-dialog">


            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Modal Header</h4>
                </div>
                <div class="modal-body">
                    <script type="text/javascript">

                    </script>


                    @{ 
                        <div id="getIco">

                        </div>
                    }

                    <form action="~/modals.cshtml" name="test" method="post">

                        <input type="hidden" class="form-control" id="IDRec" name="IDRec" />

                        <input type="text" class="form-control" id="getIco" name="getIco" value="" />
                        <input type="submit" name="name" value="submit" />
                    </form>

            @{
                   var recordID = request["IDRec"];
                   @recordID
             }

                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>

        </div>
    </div>




$(document).ready(function () {
    $('#myModal').on('show.bs.modal', function (event) {
        var button = $(event.relatedTarget);
        var getmyID = button.data('id');
        var modal = $(this);
        modal.find('.modal-title').text('Here is the ID: ' + getmyID);
        modal.find('.modal-body #IDRec').val(getmyID);
        modal.find('.modal-body #getIco').val(getmyID);

    });
});

1 个答案:

答案 0 :(得分:0)

我有一个解决方法,不会很漂亮,但会有功能。 uug ...在这个项目上工作太辛苦了!

抱歉,如果我困惑任何人;但基本上我试图用我的数据集填充模态,并想通过c#函数调用我想要的数据。问题是我正在捕获id然后尝试使用该id来取回记录集的其余部分并将其显示在模态中进行编辑,但是id是在javascript中。

而不是通过javascript传递id我可以将模式包装在我的c#代码中并使用id那样...但是由于记录集是循环的,在客户端,html可能会从多个实例中变得臃肿模态,但将生成一个id以及所有记录的正确数据。 ID&#39;就像一个更好的选择,没有我在我的循环中创建模态的多个实例。最后,我可能只需要使用ajax或者只是在打开模态时从另一个页面调用记录集并让它以这种方式加载。如果人们有更好的方法,我会把问题保持开放。