单击以打开模式并发送代码

时间:2015-08-19 20:29:01

标签: jquery ajax asp.net-mvc modal-dialog

我有一个场景。我有一组具有不同ID的记录,当点击时打开一个模态窗口。此模态窗口具有填写和提交的表单。我的问题是我需要添加最初单击的项目的ID以打开模式作为隐藏字段的表单结果。我做完了

以下链接会触发模式弹出

<a class="modal-with-form btn btn-default getPlan" data-id="@item.PlanId" id="@item.PlanId" data-target="#modalForm" href="#modalForm">Sign Up Now</a>

我在下面有这个脚本应该理想地将id发送到模态但由于某种原因它不起作用

jQuery(document).on("click", ".getPlan ", function ($) {
var myPlanId = $(this).data('id');
$.validator.unobtrusive.parse($(".well.container #pid").val(myPlanId));
                });

表单的模态对话框包含在div class "well container"中 我真的很想念,因为我已经使用这个策略来处理引导模式场景,但这适用于其他一些javascript插件。

对此失败,我正在寻找另一种情况,当通过ajax激活模态时,我可以将pId发送到我的控制器异步。如果我能够执行此操作,那么我会将{pId}保存在sessionViewData中并将其用作黑客。

我尝试了下面的脚本,没有任何反应

 <script type="text/javascript">
            jQuery(document).on("click", ".getPlan ", function ($) {

                var myArticleId = $(this).data('id');
                $.validator.unobtrusive.parse($(".well.container #sid").val(myArticleId));
            });

          $.ajax({
           type: "POST",
           url: "/Article/",
           data: myArticleId,
           datatype: "html",
           success: function (data) {
               $('#result').html(data);
           }
       });

            </script>

请帮忙

1 个答案:

答案 0 :(得分:0)

尝试维持一个带有display的div:在你的模态中没有一个类说&#34; mymodal&#34;。 现在尝试通过在getPlan的父div中搜索它来获取要传递给模态的id。我认为var myArticleId = $(this).data(&#39; id&#39;);没有给出正确的身份证明。你可以使用像$(this).parents(&#34; theclasshere&#34;)。text()这样的东西。然后我们可以通过$(&#34; .mymodal&#34;)。text(myArtivleId)在模态中简单地使用这个id。

将id放入视图本身的模态中总是更好。尽量不要从控制器获取id。这不是一种有效的方式。我非常怀疑你是否在myArtcileId

中获得了正确的ID