this is my DamTagsController
using Microsoft.AspNetCore.Mvc;
using Umbraco.Cms.Core.Cache;
using Umbraco.Cms.Core.Logging;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Routing;
using Umbraco.Cms.Core.Security;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Web;
using Umbraco.Cms.Infrastructure.Persistence;
using Umbraco.Cms.Infrastructure.Scoping;
using Umbraco.Cms.Web.Common.Filters;
using Umbraco.Cms.Web.Website.Controllers;
using UmbracoDemo.Models;
namespace UmbracoDemo.Controller
{
public class DamTagsController(
IUmbracoContextAccessor umbracoContextAccessor,
IUmbracoDatabaseFactory databaseFactory,
ServiceContext services,
AppCaches appCaches,
IProfilingLogger profilingLogger,
IPublishedUrlProvider publishedUrlProvider,
IMediaService _mediaService,
IScopeProvider _scopeProvider,
IMemberManager _memberManager) : SurfaceController(umbracoContextAccessor, databaseFactory, services, appCaches, profilingLogger, publishedUrlProvider)
{
[HttpPost]
public IActionResult AddTags(int mediaId,string tag,List<int> websiteIds)
{
return Ok();
}
[HttpGet]
public IActionResult GetTags(int mediaId )
{
using var scope = _scopeProvider.CreateScope();
var tags = scope.Database.Fetch<MediaTags>("WHERE MediaId = @0", mediaId);
scope.Complete();
return Ok(tags);
}
}
public class AddTagsRequest
{
public int mediaId { get; set; }
public string tag { get; set; }
public List<int> websiteIds { get; set; }
}
}
this is custom app_plugins
<div ng-controller="DamTagsController">
<input type="text" ng-model="newTag" placeholder="Add tag">
<button ng-click="addTag()">Add</button>
<ul>
<li ng-repeat="tag in tags">{{tag.tag}}</li>
</ul>
</div>
angular.module("umbraco").controller("DamTagsController", function ($scope, $http, relationResource, notificationsService, $routeParams) {
$scope.addTag = function () {
var data = {
mediaId: $routeParams.id,
tag: $scope.newTag,
websiteIds: [1058, 1059]
};
$http.post("/umbraco/surface/damtags/addtags", data)
.then(function (response) {
});
};
});
I canât post to /umbraco/surface/damtags/addtags by calling the addTag function Return POST
https://localhost:44319/umbraco/surface/damtags/addtags 400 (Bad Request)
Possible unhandled rejections: {âdataâ:ââ, âstatusâ:400, âconfigâ:{ âmethod": âPOSTâ, âtransformRequestâ:[null], â transformResponse":[null], âjsonpCallbackParamâ: âcallbackâ, âurl â: â/umbraco/surface/damtags/addtagsâ, âdataâ:{"mediaId â:123}, âheadersâ:{âAcceptâ: âapplication/json, text/plain, */* â, âContent-Typeâ: âapplication/json; charset=utf-8â, âX-Requested-With â: âXMLHttpRequestâ, âX-UMB-XSRF-TOKENâ: âCfDJ8AfCj-nqP4tPqfhn94K6Oebjtu_ eCikbMsIB1RqPGKWvtJF4Y1KeN3fmmPDEnvf1Irfk2bQX6LWqv3dSLMfU0G0OxD6RDlf0idi9UrxdTJfPGdx0yZA0_1tXhUIq0eBMqqZrawkjloyWnk0oqb-â. âNhr9WDKJ8RRKFS_6CAeE6znuHTDI0rGodv8MzfZfrSw8YLw"}, âstatusTextâ: ââ, âxhrStatusâ: âDoneâ}}.
$http.get(https://localhost:44319/umbraco/surface/damtags/gettags) It is possible to successfully request the
why,how to solve


