私はすでに1つのWeb APIを設定して作業していますが、今では自分の管理パネル(私がやった)を設定しようとしています。 という名前のWeb APIのDeleteUser()
機能が動作しているようです。私は、APIが存在するべきであるパスを与えている間に404エラーを得続けます。ASP.Net Web API 404エラー2番目のAPI
ウェブアピ設定:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
グローバル:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//Create the custom role and user
RoleActions roleActions = new RoleActions();
roleActions.AddUserAndRole();
}
AdminAPIを:
[Authorize(Roles = "admin")]
public class AdminApiController : ApiController
{
public string test()
{
return "test";
}
[HttpPost]
public string DeleteUser(string id)
{
ApplicationDbContext db = new ApplicationDbContext();
var user = db.Users.Find(id);
if (user != null)
{
string email = user.Email;
db.Users.Remove(user);
return "Succesfully deleted user : " + email;
}
else
return "Failed to delete user.";
}
}
アヤックス:
function deleteUser (id)
{
$.ajax({
url: '../api/AdminApi/DeleteUser',
type: 'POST',
contentType: "application/json",
dataType: 'json',
data: JSON.stringify(id),
success: function (data) {
alert(data);
},
error: function (x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
});
}
ajax関数はページ/ Admin/AdminPage で呼び出され、Web API - > ../api/AdminApi にアクセスし、ユーザーを削除する機能はDeleteUserです - > ../api/AdminApi/DeleterUser
404エラーが発生する理由はありません。私はそれをテストしていないので、私の関数DeleteUser
が動作していないかどうかを理解することができますが、関数に入ることができない場合はテストできません。
提案の削除操作は、 "HttpDelete"で削除する必要があります。 – TusharJ