Я использую ядро Orchard в проекте веб-приложения asp net core. У меня есть контроллер с двумя простыми API-интерфейсами get и post. Поскольку я использую OrchardCore, файл Startup.cs имеет другую конфигурацию, и я не использую Services.AddControllers() в configureServices.
Все в порядке, пока я не использую HttpGet. Но когда я хочу иметь API с HttpPost, postMan говорит badRequest. Итак, я добавил сервисы.AddControllers() в Startup.cs, и API-интерфейс сообщения был в порядке в посте Man, но проект фруктового сада говорит, что у меня несколько конечных точек.
Я использовал сервисы.AddMvc().AddNewtonsoftJson(), и все такое все было в порядке, но страница администратора не загружалась и имела ошибку, как показано ниже:
InvalidOperationException: представление «Индекс» не найдено. Поиск был выполнен в
следующих местоположениях:
/Areas/OrchardCore.AdminDashboard/Views/Dashboard/Index.cshtml
/Areas/OrchardCore.AdminDashboard/Views/Shared/Index.cshtml
/Views/Shared/Index.cshtml /Pages/Shared/Index.cshtml
Буду признателен, если вы поможете мне, как вызвать Post Api.
вот мой код:
[HttpPost("post")]
public Task post()
{
return Task.FromResult("hiPost");
}
[HttpGet("get")]
public Task get()
{
return Task.FromResult("hiGet");
}
а это мой стартап.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
//services.AddControllers();
services.AddOrchardCms();
services.AddMediatR(typeof(SelectedWebSiteBlogQueryHandler).Assembly);
services.AddAutoMapper(typeof(Startup));
services.AddCors();
services.AddMvc().AddNewtonsoftJson();
}
public void Configure(IApplicationBuilder app, IHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseCors(o => o.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseOrchardCore();
}
}
Подробнее здесь: https://stackoverflow.com/questions/674 ... ad-request