在加载宏时,我得到的url 404没有找到。

但当我进入控制台时
在与名称“produktlista”匹配的控制器'https://localhost:44351/umbraco/api/prisinformation/produktlista?typ=1&version=0'.No‘上没有找到与请求URI 'PrisInformation’相匹配的HTTP资源。
并且没有找到一个与请求URI 'https://localhost:44351/umbraco/api/prisinformation/produktlista?typ=0'.No操作匹配的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();
}
}发布于 2022-11-15 14:43:00
我阅读它是因为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/...。
https://stackoverflow.com/questions/74443724
复制相似问题