创建呈现分部视图的弹出窗口

Create a popup that renders a partial view

本文关键字:窗口 视图 创建      更新时间:2023-09-26

在过去的几天里,我一直在为弹出窗口而苦苦挣扎。这里有一些信息。我对使用 JavaScript 很陌生,但我渴望学习。首先,这里有一个我想做的例子。(按右上角的"Inloggen"使其弹出)CSS没有问题。我使用 bPopUp 并复制编辑网站中使用的代码而不是示例。

但无论如何,这里演示的网站是使用 php 制作的。但我的老板决定改用MVC 4 .NET。这不是真正的问题,除了它不再起作用的事实。我不知道为什么。

所以我决定重新开始,但我可以使用一点帮助。

我希望实现的是拥有一个可以重复使用并呈现部分视图的<div>

要触发它,我想要以下几行:

       <span class="popup_button white" data-popup="Some/view" data-height='200'>Inloggen</span>

这可能是其他标签而不是 span,可以使用 Id 代替类来定义它是一个弹出触发器。(当然,也欢迎任何其他解决方案)。 我希望使用 data-popup 属性来指定触发时要呈现的部分视图,并使用 data-height 属性来指定弹出窗口内容的高度。

任何人都可以给我有关如何实现这一目标的提示吗?我知道这可能有很多问题要问,但欢迎每个建议。由于我对 JavaScript 缺乏经验,我更喜欢代码示例,但任何架构建议都会被愉快地接受。

提前谢谢你们:D

$('#my-button').click(function () { 
    var BaseUrl = "/Popup/" + $('#my-button').data("popup"); 
    $.ajax({
        url: BaseUrl,
        type: "POST",
        data: { Id: $('.Id').val() }
        cache: false,
        async: true,
        success: function (result) {
            $(".content").html(result);
            //There are different ways to do the pop up.  you mentioned you had the popup working.  trigger it here
            $('#popup').fadeIn("slow"); 
            $('.fader').fadeIn("slow"); 
        }
    });
});

然后在您的控制器中

[HttpPost]
public PartialViewResult Action(int Id){
    //populate a model
    return PartialView("_PartialViewName", model);
}

如果您还有其他问题,请告诉我。