Я создаю приложение ASP.NET Core MVC, используя представления Razor и модальные окна Bootstrap для форм Вход и Регистрация.
При отправке форм я постоянно получаю
HTTP 405 – метод не разрешен.
Это потому, что на странице razor есть встроены две формы? Я пробовал изменить атрибуты маршрута, но это все еще не работало. Могут ли две формы внутри одной страницы быть проблемой и их отображение на разных страницах Razor решит проблему?
Контроллер
using Chance_Profit.Models;
using Microsoft.AspNetCore.Mvc;
namespace Chance_Profit.Controllers
{
public class HomeController : Controller // no ApiController
{
[HttpGet]
public IActionResult Index()
{
ViewData["Title"] = "Chance Profit - Home";
return View();
}
[HttpPost("login")]
[ValidateAntiForgeryToken]
public IActionResult Login(IndexViewModel model)
{
Console.WriteLine("Login action invoked");
if (!ModelState.IsValid)
{
ViewData["Title"] = "Chance Profit - Home";
return View("Index", model);
}
// TODO: Perform login logic
return RedirectToAction(nameof(Dashboard));
}
[HttpPost("register")]
[ValidateAntiForgeryToken]
public IActionResult Register(IndexViewModel model)
{
if (!ModelState.IsValid)
{
ViewData["Title"] = "Chance Profit - Home";
return View("Index", model);
}
// TODO: Perform registration logic
return RedirectToAction(nameof(Dashboard));
}
[HttpGet]
public IActionResult Dashboard()
{
ViewData["Title"] = "Chance Profit - Dashboard";
return View();
}
}
}
Страница Razor
@model Chance_Profit.Models.IndexViewModel
@{
ViewData["Title"] = ViewData["Title"] ?? "Chance Profit";
}
Chance Profit
@ViewData["Title"]
Login
Register
Login
Close
Login
@Html.AntiForgeryToken()
Register
Close
Register
@Html.AntiForgeryToken()
@section Scripts {
}
Обработка входа
window.onload = function () {
let lform = document.getElementById("login");
lform.addEventListener("submit", function (event) {
event.preventDefault();
});
let rform = document.getElementById("register");
rform.addEventListener("submit", function (event) {
event.preventDefault();
});
}
function handleLogin() {
console.log("Login form submitted");
let lform = document.getElementById("login");
lform.submit();
}
Program.cs
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllersWithViews();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapStaticAssets();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}")
.WithStaticAssets();
app.Run();
Подробнее здесь: https://stackoverflow.com/questions/798 ... when-using
Отправка формы ASP.NET Core MVC возвращает метод HTTP 405, который не разрешен при использовании маршрутизации атрибутов ⇐ C#
Место общения программистов C#
1771630298
Anonymous
Я создаю приложение ASP.NET Core MVC, используя представления Razor и модальные окна Bootstrap для форм [b]Вход[/b] и [b]Регистрация[/b].
При отправке форм я постоянно получаю
HTTP 405 – метод не разрешен.
Это потому, что на странице razor есть встроены две формы? Я пробовал изменить атрибуты маршрута, но это все еще не работало. Могут ли две формы внутри одной страницы быть проблемой и их отображение на разных страницах Razor решит проблему?
Контроллер
using Chance_Profit.Models;
using Microsoft.AspNetCore.Mvc;
namespace Chance_Profit.Controllers
{
public class HomeController : Controller // no ApiController
{
[HttpGet]
public IActionResult Index()
{
ViewData["Title"] = "Chance Profit - Home";
return View();
}
[HttpPost("login")]
[ValidateAntiForgeryToken]
public IActionResult Login(IndexViewModel model)
{
Console.WriteLine("Login action invoked");
if (!ModelState.IsValid)
{
ViewData["Title"] = "Chance Profit - Home";
return View("Index", model);
}
// TODO: Perform login logic
return RedirectToAction(nameof(Dashboard));
}
[HttpPost("register")]
[ValidateAntiForgeryToken]
public IActionResult Register(IndexViewModel model)
{
if (!ModelState.IsValid)
{
ViewData["Title"] = "Chance Profit - Home";
return View("Index", model);
}
// TODO: Perform registration logic
return RedirectToAction(nameof(Dashboard));
}
[HttpGet]
public IActionResult Dashboard()
{
ViewData["Title"] = "Chance Profit - Dashboard";
return View();
}
}
}
Страница Razor
@model Chance_Profit.Models.IndexViewModel
@{
ViewData["Title"] = ViewData["Title"] ?? "Chance Profit";
}
Chance Profit
@ViewData["Title"]
Login
Register
Login
Close
Login
@Html.AntiForgeryToken()
Register
Close
Register
@Html.AntiForgeryToken()
@section Scripts {
}
Обработка входа
window.onload = function () {
let lform = document.getElementById("login");
lform.addEventListener("submit", function (event) {
event.preventDefault();
});
let rform = document.getElementById("register");
rform.addEventListener("submit", function (event) {
event.preventDefault();
});
}
function handleLogin() {
console.log("Login form submitted");
let lform = document.getElementById("login");
lform.submit();
}
Program.cs
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllersWithViews();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapStaticAssets();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}")
.WithStaticAssets();
app.Run();
Подробнее здесь: [url]https://stackoverflow.com/questions/79892737/asp-net-core-mvc-form-submission-returns-http-405-method-not-allowed-when-using[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия