У меня есть класс контроллера MVC Asp.net с именем OrdersController, у которого есть метод HttpPost Action с именем Create (). Затем у меня есть страница просмотра с именем Create.cshtml, которая использует синтаксис бритвы и подписывается на событие action внизу страницы бритвы.
Но всякий раз, когда я нажимаю кнопку, ничего не происходит, ничего не отправляется на мой сервер, нет ошибок, нет загрузки, ничего.
Может ли кто-нибудь взглянуть на мой метод Create () Action и мою страницу бритвы Create.cshtml и сказать мне, если я сделал что-то не так или пропустил что-то, пожалуйста?
это мой метод создания
// POST: Orders/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(OrderViewModel collection)
{
try
{
var order = new Order()
{
OrderTime = DateTime.Now
};
order.LocationId = collection.LocationId;
order.CustomerId = collection.CustomerId;
order.OrderTotal = 0;
for (var i = 0; i < collection.Products.Count; i++)
{
if (collection.Products[i].Checked)
{
order.OrderTotal += collection.Products[i].Price * collection.AmountItems[i].QuantityBought;
}
}
order.Items = new List<OrderItem>();
var orderItem = new OrderItem();
//adding order items
for(var i=0; i<collection.Products.Count;i++)
{
if(collection.Products[i].Checked)
{
orderItem.QuantityBought =collection.AmountItems[i].QuantityBought;
orderItem.OrderItemNum = i;
orderItem.ProductId = collection.Products[i].ProductId;
orderItem.Price = collection.Products[i].Price;
order.OrderItems.Add(orderItem);
}
}
OrdRepo.AddOrder(order);
foreach(var item in order.OrderItems)
{
OrdRepo.AddOrderItem(item);
}
return RedirectToAction(nameof(Index));
}
catch
{
return View();
}
}
ниже - моя страница бритвы, я подписываюсь на свое событие Create внизу
@model HardwareStore.WebUI.Models.OrderViewModel
@{
ViewData["Title"] = "Create";
}
<h1>Create Order</h1>
<form asp-action="Create">
<div class="form-group">
<label asp-for="LocationId" class="control-label">Location</label>
<select asp-for="LocationId"
asp-items="@(new SelectList(Model.Locations,"LocationId", "Name"))" class="form-control"></select>
</div>
<div class="form-group">
<label asp-for="CustomerId" class="control-label">Customer</label>
<select asp-for="CustomerId"
asp-items="@(new SelectList(Model.Customers,"CustId", "FirstName"))" class="form-control"></select>
</div>
<div>
@Html.LabelFor(model => model.Products)
<br>
@for (var i = 0; i < Model.Products.Count; i++)
{
@Html.HiddenFor(m => Model.Products[i].ProductId)
@Html.HiddenFor(m => Model.Products[i].ProductName)
@Html.HiddenFor(m => Model.Products[i].Description)
@Html.HiddenFor(m => Model.Products[i].Price)
@Html.CheckBoxFor(m => Model.Products[i].Checked)
@:
@Model.Products[i].ProductName
@:
@Html.EditorFor(m => Model.AmountItems[i].QuantityBought)
@Html.HiddenFor(m => Model.AmountItems[i].OrderItemNum)
<br />
}
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}