【问题标题】:Display PartialView as popup将 PartialView 显示为弹出窗口
【发布时间】:2013-04-08 10:37:24
【问题描述】:

在我看来,我有;

@foreach (var item in Model)
{
    <li>@Html.ActionLink("click me", "popup", "SomeData", new{id = item.ID}, new {@class = "PopUp"})</li>
}

然后我有一个看起来像这样的控制器;

public ActionResult popup(Guid id)
{
    var singelData = db.SomeRandomData.Find(id);

    return PartialView(singelData);
}

还有一个像这样的部分视图;

<div>This a popup</div>
@Model.metadata1

到目前为止一切顺利,当我点击链接时,我会被重定向到 partialView。

现在到我不习惯的部分,脚本部分,这是我的尝试;

<script src="~/Scripts/jquery-ui-1.8.20.js"></script>
<script type="text/javascript">
    $(function () {
        $('.PopUp').click(function () {
            $('<div/>').appendTo('body').dialog({
                close: function (event, ui) {
                    dialog.remove();
                },
                modal: true
            }).load(this.href, {});

            return false;            
        });
    });
</script>

但它仍然只是返回一个视图。我哪里错了?

【问题讨论】:

  • 您的意思是在“这是一个弹出窗口”之前和之后关闭 div 吗?如果不是,则更改为:
    这是一个弹出窗口
  • 感谢您的通知,我已更改但仍然没有结果。
  • 我如何使用它,只需将 @html.Actionlnk 替换为 $.post?

标签: c# asp.net-mvc jquery


【解决方案1】:

您应该确保在显示的 2 个脚本之前 包含 jQuery。此外,我建议您使用 javascript 调试工具(例如 FireBug)并查看控制台窗口,您可能会在其中看到脚本的潜在错误。

【讨论】:

  • 谢谢,我只是注意到,当我尝试使用本机 Window 时,它在 VS 中不起作用。我把 jquery-1.7.1.js 放在共享布局中,够了吗?感谢您的建议,我会尝试 firebug(尝试学习 javascript,所以我不那么敏锐)
  • 是的,您可以在 _Layout 中包含 jQuery,但请确保它包含在 之前 jQuery-ui.js。例如,您可以在 _Layout 中有一个自定义部分,您可以在其中呈现自定义脚本:@RenderSection("scripts", required: false)。然后在您的特定视图中,您将覆盖此部分:@section scripts { ... put your scripts here ... }。它位于视图中的覆盖部分内,您可以包含 jquery-ui 和您的自定义脚本。
  • 我会试试的,现在我正试图让你的stackoverflow.com/questions/10724796/… 工作,所以我猜它的脚本导入我真的错了。
  • 好吧,我现在真的迷路了。我从jqueryui.com/dialog 中获取了代码并将其添加到视图中,它没有显示。如果我使用记事本粘贴相同的文件名,将文件名更改为 html 它会显示。在您的原始指南中,您是否遗漏了任何步骤,或者我有一些奇怪的 VS 设置?
  • 不,没有具体的设置。确保您已正确包含所有脚本。查看 FireBug 的 Net 选项卡,看看包含脚本时是否有一些 404 错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 1970-01-01
相关资源
最近更新 更多