Получение ошибки HTTP 405 при отправке формы в основной контроллер ASP.NETC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Получение ошибки HTTP 405 при отправке формы в основной контроллер ASP.NET

Сообщение Anonymous »

Я столкнулся с проблемой в своем приложении ASP.NET Core: получаю ошибку HTTP 405 при попытке отправить форму действию контроллера. Я просмотрел свой код и конфигурацию, но не смог определить основную причину проблемы. Вот подробности:
В моем приложении ASP.NET Core есть форма, предназначенная для обработки входа пользователя в систему. Форма настроена на использование метода POST, и предполагается, что она передает адрес электронной почты и пароль пользователя действию контроллера с именем «вход».
HTML-форма:

Код: Выделить всё

@{
ViewData["Title"] = "Sign In";
}

Sign In



Email


Password


Sign In

Действие контроллера:

Код: Выделить всё

    [HttpPost]
public IActionResult login(string email, string password)
{
var user = _context.Users.SingleOrDefault(u => u.email == email && u.password == password);
if (user != null)
{
return RedirectToAction("Index");
}
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return View();
}

}
}
Program.cs:

Код: Выделить всё

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Routing.Constraints;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using signIn_form.Models;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddDbContext(options =>
options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")));

builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();

app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();
При отправке формы я получаю ошибку HTTP 405 с сообщением «Эта страница не работает. Если проблема не исчезнет, ​​обратитесь к владельцу сайта. HTTP ERROR 405». Я проверил, что действие «вход» правильно оформлено атрибутом [HttpPost] для обработки запросов POST. В HTML-форме указан правильный метод = «post». Очевидных проблем с контроллером и именами действий нет. Версия ASP.NET Core: 7.0.3
Я был бы очень признателен за любые идеи или предложения по решению этой проблемы. Если вам нужна дополнительная информация о коде или конфигурации, дайте мне знать, и я предоставлю ее незамедлительно.
Спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/771 ... controller
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»