【问题标题】:How to make a .cshtml pop window in ASP .NET Core MVC web application如何在 ASP .NET Core MVC Web 应用程序中制作 .cshtml 弹出窗口
【发布时间】:2021-05-20 17:13:24
【问题描述】:

我是编程新手,我正在尝试制作一个 ASP .NET Core MVC Web 应用程序。在那里我必须上传用户个人资料图片。为此,我应该像在 Facebook 中一样制作一个弹出窗口。 (例如,当用户点击相机图标而不是转到另一个页面时,必须出现一个上传图像的弹出窗口。)

以下是Profile.cshtml 页面中的行,该行重定向到应显示为弹出窗口的UploadUserImage.cshtml 页面。 (那个文件很大,所以我想只发布这一行)

 <a asp-action="UploadUserImage" asp-controller="UserImages"><i class="fas fa-camera camera-icon-profile"></i></a>

以下是点击上述链接后必须弹出的 .cshtml 文件。

UploadUserImage.cshtml

@model IEnumerable<WebApp.Models.User>

@{
    Layout = "/Views/Shared/_Profile.cshtml";
    ViewData["Title"] = "Upload your photo";
}
<div class="container">

    <div class="row">
        @using (Html.BeginForm("UploadProfilePicture", "UserImageUpload", FormMethod.Post, new { enctype = "multipart/form-data" }))
        {
            <div class="panel panel-warning">
                <div class="panel-heading">
                    <h3 class="panel-title">Upload your picture</h3>
                </div>
                <div class="panel-body">
                    <div class="row">
                        <div class="col-md-4 col-md-offset-4">
                            <input type="file" name="file" />
                            <input type="submit" class="btn btn-primary form-control" value="Save Photo" />
                        </div>
                    </div>
                </div>
            </div>
          }
       </div>
     }
   </div>
</div>

我知道通过前端可以使用 jQuery 来制作弹出窗口。但我不知道如何应用它。有人可以告诉我怎么做吗?

非常感谢您的宝贵时间。

【问题讨论】:

    标签: razor popup popupwindow


    【解决方案1】:
      • 为您的 UploadPage 创建一个 PartialView
      • 创建一个函数以在 Html 中调用弹出窗口

        <script>
            
              function ShowPopup(idUserProfile) {
                        $.ajax({
                                type: 'POST',
                
                                url: "@Url.Action("Method", "Controller")",
                
                                data: { idUserProfile },
                
                                success: function (response) {
                
                
                                    $.magnificPopup.open({
                
                                        items: {
                
                                            src: response
                
                                        },
                
                                        type: 'inline',
                
                                        modal: true,
                
                                        closeOnBgClick: false,
                
                                        focus: '#btnDismiss'
                
                                    });
                                },
                
                                error: function (xhr, ajaxOptions, thrownError) {
                
                                }
                
                        });
                    }
                    </script>

    也许你不使用idUserProfile

      • 在 Controller 类中调用局部视图
    public ActionResult Upload()
    {
        return PartialView("_UploadPage");
    }
    
      • 在 Html 中调用函数

                           <button class="btn btn-primary" onclick="ShowPopup()">Show Upload</button>
        

    【讨论】:

    • 你的意思是,我应该安装名为 Magnific.Popup 的 NuGet 包?
    • 是的,或者在 Magnificpopup 网站上下载包并导入脚本文件夹中的应用程序
    • 很抱歉您的回答无效。我按照步骤进行操作,但似乎什么也没发生。在控制台中它给出了错误:我已将错误图像附加到问题中。你能帮我解决吗?谢谢。
    • 尝试导入 Ajax 不显眼的库,并确保您在 HTML 中导入了这些库
    • 是的,Felipe 我按照文档中的方式进行操作。 &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"&gt;&lt;/script&gt; &lt;script src="/js/jquery.magnific-popup.js"&gt;&lt;/script&gt; & &lt;link rel="stylesheet" href="/css/magnific-popup.css"&gt;(.js 和 .css 文件位于特定位置的 wroot 文件夹中)。不明白出了什么问题。
    猜你喜欢
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2021-06-19
    • 2022-01-21
    • 2011-04-15
    相关资源
    最近更新 更多