.net 表面控制器和动态模板

unftdfkk  于 2023-04-22  发布在  .NET
关注(0)|答案(1)|浏览(83)

我是Umbraco的新手。我对Surface Controller的文档有疑问,请参阅此链接https://docs.umbraco.com/umbraco-cms/reference/routing/surface-controllers/
这些语句(以黄色突出显示)是什么意思?x1c 0d1x
下面是我的示例代码

using Microsoft.AspNetCore.Mvc;
using Umbraco.Cms.Core.Cache;
using Umbraco.Cms.Core.Logging;
using Umbraco.Cms.Core.Routing;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Web;
using Umbraco.Cms.Infrastructure.Persistence;
using Umbraco.Cms.Web.Common.Attributes;
using Umbraco.Cms.Web.Common.Controllers;
using Umbraco.Cms.Web.Website.Controllers;
using UmbracoTest.Infrastructure;
using UmbracoTest.Model;

namespace UmbracoTest.Controllers
{
  public class SectionOptionsController : SurfaceController
  {
    public SectionOptionsController(IUmbracoContextAccessor umbracoContextAccessor, 
    IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches 
    appCaches, IProfilingLogger profilingLogger, IPublishedUrlProvider 
    publishedUrlProvider) : base(umbracoContextAccessor, databaseFactory, services, 
    appCaches, profilingLogger, publishedUrlProvider)
    {
    }

    [HttpPost]
    public async Task<IEnumerable<DummyModel>> GetAllDataFromDBAsync()
    {
        //returns list of data
    }
   }
 }

当我试图在Postman中触发它时,它返回404。我希望返回一个列表。这是我在Postman中使用的URL,https://localhost:44327/Umbraco/surface/SectionOptions/GetAllDataFromDBAsync。
此外,我可以要求一个高层次的建议,如何实现以下方案。

场景:

  • UI中有一个按钮,我打算让它动态化。这个按钮将在不同的内容页面中使用。-如果点击这个,它将显示一个包含数据库数据的表。-这个动态按钮将接受一个id/flagging,它决定了什么样的数据集将在UI中显示。-对于id/flagging,我计划这将由内容编辑器填充。取决于每个内容页面中所需的设置数据。
    先谢谢你。
gdx19jrr

gdx19jrr1#

SurfaceControllers是用来处理Html表单帖子的。如果你想检索数据,你应该使用UmbracoApiControllers。这些将路由到~/Umbraco/Api/[YourControllerName]
API控制器是我猜你想与你的场景。如果你显示这个表与javascript。如果你是在一个页面上呈现表服务器端,考虑使用RenderControllers

相关问题