什么时候使用局部视图和ViewComponent?

问题描述 投票:0回答:0

我是 asp.net core 的初学者。我正在建立文件转换网站。 PNG 到 JPG,PDF 到 Word 等。在那里,我使用 fileuplaod 控件上传对话内容。 我认为将此控件放在一个类中并调用它们,而不是在每个视图上使用相同的控件。 当我在网上搜索时,我发现了以下两种方法

  1. ViewComponent 方法
  2. 局部视图法

现在我很困惑用什么?请注意,页面到页面上传的文件类型会有所不同。在 JPG 到 PNG 转换器页面上,我必须将 fileuplaod 控件限制为仅使用 JPEG 图像。所以我想将一些参数传递给这个公共控件,在上传过程完成后,我想回调到调用页面进行特定的转换。

所以到目前为止我已经实施了以下内容

我是按照Viewcomponent方法

@model BassModel
@*<form asp-controller="FileUploadViewComponent" enctype="multipart/form-data">*@
    <div class="card card-body">
        <strong>Select PDF file to convert</strong> <div id="chooseFile"><input type="file" asp-for="@Model" accept="image/*" /></div>
        <br />
    </div>
    <br />
    <input asp-action="Index" type="button" value="Upload" class="btn btn-primary" />
    <input asp-action="Clear" type="submit" value="Clear" class="btn btn-outline-primary" />
    <br />
@*</form>*@

在 PDF 到 word view 上

<form asp-controller="FileUploadController">
    @section _FileUpload{
        @await Component.InvokeAsync("_FileUpload", Model)
    }
</form>

在布局页面

<div class="container">
    <div class="row">
        <div class="col-md-7">
            <div class="container background_color_white">
                <main role="main" class="pb-3">
                    @RenderBody()
                </main>
            </div>
            <br />
            <div class="container background_color_white">
                @RenderSection("_FileUpload",false)
            </div>
        </div>
</div>

到目前为止我已经做到了。错误来了。但在我走得更远之前,我想确保我所做的是正确的。我的方向对吗?

asp.net-core asp.net-mvc-partialview asp.net-core-viewcomponent
© www.soinside.com 2019 - 2024. All rights reserved.