在ASP.NET Core Razor页面上使用部分视图

3

我正在开发一个基于asp.net core 2 Razor页面的项目。 我需要一个能够在RAZOR页面中加载局部视图或组件的解决方案,同时我也可以发送一些对象(一些类模型或基本字符串)。

这是我想要在其中加载局部视图的详细信息页面。 使用以下代码:

@{
    await Html.RenderPartialAsync("Shared/Partial/DeleteModal", Model.DeleteModalModel);
}

这是我的部分视图内部。
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header bg-red">
                <h4 class="modal-title" id="defaultModalLabel">DİKKAT KAYIT SİLİNECEKTİR !</h4>
            </div>
            <div class="modal-body">                
            </div>
            <div class="modal-footer">
                <input type="submit" asp-page-handler="Delete" class="btn bg-red m-t-15 waves-effect" value="Sil" data-toggle="modal" data-target="#deleteModal" />
                <button type="button" class="btn bg-indigo m-t-15 waves-effect" data-dismiss="modal">@Html.DisplayNameFor(model => Model.ViewModel.Buttons.Close)</button>
            </div>
        </div>
    </div>
</div>

下面是部分视图模型。
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace Q.Presentation.System.Razor.Pages.Shared.Partial
{
    public class DeleteModalModel : PageModel
    {
        public string Message { get; set; }
    }
}

我希望能够在DETAIL页面中设置Message属性,并将其显示在部分视图中,然后将该视图加载到DETAIL razor 页面中。

1个回答

5

找到了解决方案。当您向项目添加一个部分RAZOR视图时,VS RAZOR部分视图模板会在部分视图的CSHTML文件顶部添加@page。 您需要将其删除以使其正常工作。

这是旧的部分视图CSHTML文件。

@page
@model Project.Model

<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog">
......

并且新的一个:
@model Project.Model

<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog">
........

我刚刚发现了我的问题,即将顶部的@page删除后,它就可以工作了。我想知道为什么我们要这样做?你能解释一下吗? - Triet Nguyen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接