在剃刀的子视图中调用Jquery函数

时间:2013-07-29 13:31:31

标签: jquery asp.net-mvc razor

我想使用这样的活动$('#myModal').show();

原始调用插件例程如下:

<script type="text/javascript">
$(document).ready(function() {
     $('#myButton').click(function(e) {
          e.preventDefault();
      $('#myModal').show();
     });
});
</script>

我将我的代码放在下面的部分中。 此处$('#myModal').show({});未运行

    @using (Html.BeginForm("Contact", "Home", FormMethod.Post, new { name = "send-contact", id = "contactform1" }))
    {       
            @Html.AntiForgeryToken()  

            if (!String.IsNullOrEmpty(stResult)) 
             {                
                 <text>
                        <div id="myModal" class="reveal-modal">
                             <h1>Modal Title</h1>
                             <p>Any content could go in here.</p>
                             <a class="close-reveal-modal">&#215;</a>
                        </div>

                     $('#myModal').show({}); // The desired function!
                 </text>

             }
     }

我的代码中有两个问题

  1. JQuery库位于母版页的底线(_Layout) 对于位于那里的着名ready()函数内的所有插件,都有一个包装器

  2. 作为替代方式,我将$('#myModal').show();置于Wrapper中JQuery.ready()内部,当它调用所有内容时,如果它应该根据我的条件找到"#myModal"那么它我会解雇我想要的功能。 但这又不会发生。

  3. 我认为这种方法似乎更合乎逻辑,可能是这两种方法之间唯一合乎逻辑的原因导致第一种方法的功能不在 JQuery ready 功能中,如果我使用另一种方法这里准备好了功能,因为就绪功能的重复也是错误的。

1 个答案:

答案 0 :(得分:3)

如果要包含名为Foo.cshtml的部分视图,您还可以创建名为FooScripts.cshtml的部分视图,并将该视图呈现在其他脚本加载的位置:

<h2>Main View</h2>

@Html.Partial("Foo")

...


@section scripts {
    @Scripts.Render("~/bundles/jquery")
    @Html.Partial("FooScripts")
}