【问题标题】:backoffice macro returns 404后台宏返回 404
【发布时间】:2023-01-09 20:50:45
【问题描述】:

我在宏中加载时收到 url 404 not found。

但后来我进入控制台

找不到与请求 URI“https://localhost:44351/umbraco/api/prisinformation/produktlista?typ=1&version=0”匹配的 HTTP 资源。在控制器“PrisInformation”上找不到与名称“produktlista”匹配的操作'.

和一个 找不到与请求 URI“https://localhost:44351/umbraco/api/prisinformation/produktlista?typ=0”匹配的 HTTP 资源。在控制器“PrisInformation”上找不到与名称“produktlista”匹配的操作。

我尝试调用的代码是这个。无论我尝试多少,调用宏时都会出现此错误。

public class PrisInformationController : UmbracoApiController
  {
    private ILoginService _userService;
    private MembershipHelper _membershipHelper;

    public PrisInformationController(MembershipHelper membershipHelper, ILoginService userService)
    {
        _userService = userService;
        _membershipHelper = membershipHelper;
    }

    public void Authorize()
    {
        if (!_membershipHelper.IsLoggedIn())
        {
            if (_userService.AddAndOrLoginMember())
            {
                return;
            }
        }

        throw new HttpException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Page not found").ToString());
    }

    [HttpGet, HttpPost]
    [Route("produktlista/{typ}")]
    public HttpResponseMessage Produktlista(int typ = 0, int version = 0)
    {
        Authorize();

        string result = string.Empty;
        string apiUrl = ConfigurationManager.AppSettings["ApiUrl"];
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiUrl + "/databoken/get/produktlista/" + typ + "/" + version);

            request.Method = WebRequestMethods.Http.Get;
            request.Accept = "application/json";
            var response = request.GetResponse();

            string s = string.Empty;

            using (var sr = new StreamReader(response.GetResponseStream()))
            {
                result = sr.ReadToEnd();
            }

        }

【问题讨论】:

    标签: asp.net asp.net-mvc-4 umbraco umbraco8


    【解决方案1】:

    我读它是因为您的 Produktlista 方法定义了一条路线,要求您执行 /umbraco/api/prisinformation/produktlista/1,其中 1 是 typ,而不是 ?typ=1。虽然我可能完全错了,但也许尝试删除自定义路由定义,看看是否有帮助?

    https://our.umbraco.com/Documentation/Reference/Routing/Umbraco-API-Controllers/index-v8

    另一方面,您可以将控制器更改为 UmbracoAuthorizedApiController 类型,这将为您进行后台授权检查。请注意,它将标准路由改为/umbraco/backoffice/api/...

    【讨论】:

      猜你喜欢
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2019-01-26
      相关资源
      最近更新 更多