[英]System.NullReferenceException on dropdownlist
我正在制作一個網上商店,添加產品時一切都很好,當我嘗試編輯產品時,出現錯誤提示。
這是我的代碼:
@model WorkshopASPNETMVC_III_Start.ViewModels.ProductViewModel
//somecode
{
//view other text boxes
<div class="editor-field">
@Html.DropDownListFor(model => model.SelectedSubcatID, Model.Subcats)
@Html.ValidationMessageFor(model => model.SelectedSubcatID)
</div>
現在,當我實際更改它們時,而不是在獲取更改EM的視圖時,將發生此錯誤。 它說我的selectedSubcatID或Model.Subcats為空。
但其中之一不是:
ProductViewModel viewModel = new ProductViewModel();
Product product = productDBController.getProduct(productId);
viewModel.Product = product;
viewModel.SelectedSubcatID = product.Subcat.subcat_id;
viewModel.Subcats = getSelectListSubcats();
return View(viewModel);
private SelectList getSelectListSubcats()
{
List<SubCategorie> subcats = subcatDBController.GetSubCats();
SubCategorie emptySubcat = new SubCategorie();
emptySubcat.subcat_id = -1;
emptySubcat.naam = "";
subcats.Insert(0, emptySubcat);
return new SelectList(subcats, "subcat_id", "Naam");
}
編輯
[HttpPost]
public ActionResult WijzigProduct(ProductViewModel viewModel, HttpPostedFileBase file)
{
if (file == null)
{
MessageBox.Show("Product niet gewijzigd, geen plaatje geselecteerd!");
return RedirectToAction("NieuwProduct", "Beheer");
}
else
{
String path = "/Content/Images";
DirectoryInfo info = new DirectoryInfo(Server.MapPath(path));
if (!info.Exists)
{
info.Create();
}
String fullName = String.Format("/Content/Images/{0}", file.FileName);
file.SaveAs(Server.MapPath(fullName));
try
{
if (ModelState.IsValid)
{
viewModel.Product.Subcat = subcatDBController.getSubCat(viewModel.SelectedSubcatID);
productDBController.UpdateProduct(viewModel.Product, fullName);
return RedirectToAction("beheerPagina", "Beheer");
}
else
{
viewModel.Subcats = getSelectListSubcats();
return View(viewModel);
}
}
catch (Exception e)
{
ViewBag.FoutMelding = "Er is iets fout gegaan: " + e;
return View();
}
}
}
我發現了問題,不確定是怎么回事,但是有一天您可能會遇到此問題,因此值得一試。
在我放置所有新屬性(例如價格,名稱等)的文件中。我在模型中進行了驗證。 價格的一項驗證不正確。 我注釋掉了,它起作用了:
檢查驗證:
@model WorkshopASPNETMVC_III_Start.ViewModels.ProductViewModel
//somecode
{
//view other text boxes
<div class="editor-field">
@Html.DropDownListFor(model => model.SelectedSubcatID, Model.Subcats)
@Html.ValidationMessageFor(model => model.SelectedSubcatID)
</div>
我不確定為什么我會得到這個nullreferenceexception,但我很高興它得到修復! 感謝你們的支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.