ASP.Net核心视图为popupbox

时间:2017-07-18 20:00:48

标签: c# asp.net-mvc asp.net-core popup

我目前正在撰写表格。在表单中,如果没有需要的项目,您可以单击添加按钮,它会将您带到一个新表单,您可以在其中添加项目。而不是我的视图转到另一个页面,我希望它弹出窗体上方,以便用户可以快速添加项目而不必旅行页面。

以下是Create.cshtml

中的剪贴片
<div class="form-group">
    <label asp-for="INT_CertificationsID" class="col-md-2 control-label"></label>
    <div class="col-md-3">
        <select asp-for="INT_CertificationsID" class ="form-control" asp-items="ViewBag.INT_CertificationsID"></select>
    </div>
    <a class="btn btn-default" asp-area="" asp-controller="INT_Certifications" asp-action="Create">Add Certification</></a>
</div> 

点击添加认证属性后,我想要一个弹出Create.cshtml认证的框。这样他们就可以快速将其添加到列表中并继续填写表单。

我已经查找了几个示例来执行此操作,但由于JqueryUI中的nuget包错误,其中大多数都是太旧,太长或无法在.netcore中工作。

2 个答案:

答案 0 :(得分:2)

您需要创建一个控制器方法,将弹出窗口中所需的页面作为PartialView返回。

我认为你的意思是模态,而不是&#34;弹出&#34; ...你需要使用模态机制来创建模态窗口并通过AJAX获取(或发布)部分并使用结果显示在模态窗口。

我喜欢bootbox,它是bootstraps模式功能的包装器。

答案 1 :(得分:0)

我会将隐藏div中的局部视图与需要它们的页面一起加载,并在需要时使用JavaScript动态显示它们。不要使用表单发送http请求,而是使用AJAX。

使用弹出窗口可能会对您不利,因为默认情况下浏览器会弹出窗口阻止程序。可能会在您的devbox上工作,但它可能在其他地方有完全不同的行为。

使用表单发送请求需要重新加载页面,这不能提供良好的用户体验。

修复您的解决方案,不要将nugget用于客户端脚本。改用凉亭。这是一个链接https://docs.microsoft.com/en-us/aspnet/core/client-side/