我完全不知道爲什麼我的模型是空的,當我試圖提交這種形式只有一個字段,一個dropdownlistfor選定的值。ASP.NET MVC:爲什麼我的模型在HttPost上爲null?
Get的工作得很好,模型明確地不爲空。但每次我嘗試提交表單,模型始終是空,我不知道爲什麼在此刻:
型號:
[Required]
public string SelectedOrderStatus { get; set; }
public List<SelectListItem> OrderStatuses { get; set; }
查看:
@model Webstore.Models.OrderViewModel
@using (Html.BeginForm("Edit", "Order", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(m => m.OrderId)
<div class="form-horizontal">
<h4>Change Order Status for order: @Model.OrderId</h4>
<div class="form-group">
@Html.LabelFor(model => model.Orderstatus, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.SelectedOrderStatus, new SelectList(Model.OrderStatuses, "Value", "Text"))
@Html.ValidationMessageFor(model => model.SelectedOrderStatus)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save Order Status" class="btn btn-default" />
</div>
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
控制器
[HttpPost]
public ActionResult Edit(Guid id, OrderViewModel model)
{
try
{
Order orderToEdit = _context.Orders.Find(id);
orderToEdit.Orderstatus = (Orderstatus)Enum.Parse(typeof(Orderstatus), model.SelectedOrderStatus);
_context.Entry(orderToEdit).State = EntityState.Modified;
_context.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
我會appreaciate很多,如果你能幫我在這裏!
商祺!
您的模型(上部)未滿,因爲您有'model.Orderstatus'和'Model.OrderId' – whoah
model.OrderStatus只是一個標籤。 model.SelectedOrderStatus是我想要的唯一值。 SelectedOrderStatus是Selectlist模型中的選定項目。訂單狀態。 – Assassin87