2

MVC ページのリンクからポップアップを表示しようとしていますが、ポップアップが表示されません。部分ビューは、ブラウザの現在のページを置き換えるだけです。現在のページをそのままにして、ポップアップを表示するだけではないのはなぜですか? 私の部分的なビューには、テキストの単語がいくつか含まれているだけです。

@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 は私の部分的なビューを返しています (現在はプレーン テキストのほんの数単語です):

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>
4

3 に答える 3

1

<head>レイアウト(マスター)ページのセクションに「jquery.unobtrusive-ajax.min.js」スクリプトファイルへの参照がないようです。

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
于 2012-05-18T18:03:39.523 に答える
0

ブラウザーでビューが部分ビューに置き換えられる理由は、@Ajax.ActionLink がブラウザーで形成されたタグとしてレンダリングされるためです。したがって、リンクをクリックすると、実際に。

あなたがやりたいことは、ポップアップを開いて、パーシャルのコンテンツをポップアップに配置することだと思いますか?

これを実現するにはいくつかの方法があります。

アクションリンクを通常の開いているポップアップに変更します

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

そして、この機能を追加します

    $("#OpenPopup").click(function() {
      $("#result").dialog("open");
      // This is a neat wrapper that does a get request to the url specified and loads the html into the target div
      $("#result").load("/GetNotes/5");
    });
于 2012-05-18T18:01:27.490 に答える