【问题标题】:How do I create a re-useable POST view object in dotnet core?如何在 dotnet core 中创建可重复使用的 POST 视图对象?
【发布时间】:2019-03-13 10:56:41
【问题描述】:

我正在为我的网站在 dotnet core 中创建一个沙箱,并且我正在挖掘 MVVM 的优势和 Razor Pages over MVC 的简单性。我意识到 Razor 页面应该更简单,但是 Razor 页面、视图组件甚至 MVC 我无法想象如何完成我需要的,并且正在寻找最佳实践的指导:

我有一个页面,我可以在上面上传一些文件。我可以上传 3 种不同类型的文件,它们都以不同的文件类型将文件存储在不同的位置。我想保持这个单一职责原则并有 3 个单独的页面,允许我有 3 个单独的视图来容纳上传视图对象

如何创建可重复使用的视图对象,正确的术语是什么,这将允许我 OnPost 将文件上传到我的服务器?它是与接收 WebApi 控制器相结合的 Partial Page 或 ViewComponent 吗?是否可以在单个位置执行 OnPost 操作,这样我就不会围绕它构建大量代码?

【问题讨论】:

    标签: c# asp.net-core razor-pages


    【解决方案1】:

    视图组件封装了 HTML 和逻辑。如果你想集中上传表单但分开处理,Partial View会更合适。

    【讨论】:

    • 我希望有一个单元将上传表单和处理与主页/视图分开。我现在的解决方法看起来不错,但让我有一种“但这有错吗?”的感觉
    • 所以我有一个实现接口 IUploadPageModel 的部分页面。接口包含属性 IList UploadedFiles 和 IFileUploadBehavior。要调用您传入的父模型的部分,这是实现 IUploadPageModel 所必需的。但是,随着所有这些绕行逻辑的进行,最好将其保留为控制器,我认为它仍然可以实现 IUploadPageModel,然后应该将其重命名为 IUploadViewModel。然而,即便如此,解决重用可以通过注入更改的核心逻辑的问题似乎仍然是一种不合时宜的方法。
    • 您的问题没有正确或错误的答案。一件事-部分不应该有PageModel。如果它有一个 PageModel,它应该是一个 ViewComponent。此外,在同一个类中使用备用工作流(运行逻辑)并根据上下文选择一个也没有错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2012-02-09
    • 2017-11-20
    • 2015-09-16
    相关资源
    最近更新 更多