javascript - 弹出窗口不会在 MVC 中弹出

标签 javascript jquery asp.net-mvc popup

我试图让弹出窗口从 MVC 页面中的链接出现,但弹出窗口没有弹出。局部 View 只是替换浏览器中的当前页面。为什么不只是将我当前的页面留在原地并给我一个弹出窗口?我的部分 View 中只有几行文字。

@Ajax.ActionLink(
    "Open popup",
    "GetNotes",
    new { id = "5" },
    new AjaxOptions
        {
            HttpMethod = "GET", 
            UpdateTargetId = "result", 
            InsertionMode = InsertionMode.Replace, 
            OnSuccess = "openPopup"
        })

<br />

<div id="result" style="display:none;"></div>

<script type="text/javascript">
    $("#result").dialog({
        autoOpen: false,
        title: 'Title',
        width: 500,
        height: 'auto',
        modal: true
    });

    function openPopup() {
        $("#result").dialog("open");
    }

</script>

更新:

这是我目前正在尝试的完整源代码(来自“查看源代码”)。当我点击链接时,没有任何反应。这是怎么回事?我是否缺少 js 文件或其他内容?

顺便说一下,这个 URL 正在返回我的部分 View (目前只有几个纯文本单词):

http://localhost:40353/Quote/GetNotes/5

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
        <script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
        <script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
        <script src="/Scripts/people.js" type="text/javascript"></script>
        <script src="/Scripts/kendo.web.min.js" type="text/javascript"></script>
        <script src="/Scripts/console.js" type="text/javascript"></script>
        <script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script> 
        <script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script> 

        <link href="/Styles/Site.css" rel="stylesheet" type="text/css" />
        <link href="/Styles/kendo.common.min.css" rel="stylesheet" type="text/css" />
        <link href="/Styles/kendo.default.min.css" rel="stylesheet" type="text/css" />
        <link href="http://code.jquery.com/ui/1.8.20/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" media="all" />
    </head>

    <body>
<div id="result" style="display:none;"></div>

<a href="#" id="OpenPopup"> open popup </a>

        <script type="text/javascript">
                $("#result").dialog({
                    autoOpen: false,
                    title: 'Title',
                    width: 500,
                    height: 'auto',
                    modal: true
                });

                $("#OpenPopup").click(function () {
                    $("#result").dialog("open");
                    $("#result").load("Quote/GetNotes/5");
                });
        </script>

    </body>
</html>

最佳答案

我认为您在 <head> 中缺少对“jquery.unobtrusive-ajax.min.js”脚本文件的引用布局(母版)页面的一部分。

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

关于javascript - 弹出窗口不会在 MVC 中弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10657319/

相关文章:

jquery - 如何使日期选择器始终清除文本框

javascript - 修复 aspnetboilerplate 启动模板、租户或编辑错误

javascript - 你如何清除javascript中的焦点?

javascript - 如何在 Javascript 中解开链式匿名函数?

javascript - 内容更改时的瞬时文本突出显示

javascript - 逐一选择每个子表中的元素

asp.net-mvc - 在 View 和局部 View 之间共享模型

c# - 使用自定义逻辑在 MVC 中对大量数据进行分页

javascript - 为什么组件在没有 `changeDetetectorRef.markForCheck` 的情况下检测不到内部状态变化?

javascript - 需要在OL3中克隆图层