У меня раньше была аналогичная проблема, и мне просто нужно было добавить к этому метод IActionResult, поэтому я добавил еще один для этого, но это было недостаточно. У меня есть скрытое поле ввода в форме, которое действует как кнопка, и я позаботился о том, чтобы не пропустить действие asp, чтобы связать его с методом. Другая причина, по которой я знаю, что метод подключается, но идентификатор пуст, заключается в том, что метод написан таким образом, что, если идентификаторы равны нулю, они должны просто перейти в начало индексной страницы, что и происходит. Суть метода в том, чтобы иметь возможность менять статус.
Вот методы в контроллере, Orders — имя класса модели
Код: Выделить всё
public IActionResult Index(int orderId, OrderStatus nyStatus)
{
var andraInfo = new Orders();
andraInfo.Id = orderId;
andraInfo.Status = nyStatus;
return View(andraInfo);
}
//-----------------------------------
public IActionResult AndraStatus(int orderId, OrderStatus nyStatus)
{
Console.WriteLine(orderId);
var order = _context.Orders.Find(orderId);
//var order = _context.Orders.FirstOrDefault(o => o.Id == orderId);
// Kontrollera om ordern finns
if (order != null)
{
// Uppdatera statusen på ordern
order.Status = nyStatus;
// Spara ändringarna i databasen
_context.Update(order);
_context.SaveChanges();
}
return RedirectToAction("Index", "Home");
}
Код: Выделить всё
@foreach (var hat in Model)
{
Namn på hatten: @hat.Title
@foreach (var order in hat.HatsOrders)
{
@if (User.Identity.IsAuthenticated)
{
Välj ny status:
@foreach (var status in Enum.GetValues(typeof(OrderStatus)))
{
@status
}
@*
Uppdatera status *@
}
else
{
Status: @order.Orders.Status
}
@if (order.Orders.UserId is null)
{
Det finns ingen som är ansvarig för hatten
@if (User.Identity.IsAuthenticated)
{
Markera mig som ansvarig
}
}
else
{
Ansvarig: @order.Orders.Users.UserName
}
Kund
Förnamn: @order.Orders.Customers?.Firstname
Efternamn: @order.Orders.Customers?.Lastname
}
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... -view-page
Мобильная версия