в моей модели у меня есть значение bool itemCheck:
public class Item
{
public Array userDataItems { get; set; }
public char[] delimiterChar { get; set; }
public bool itemCheck { get; set; }
}
Моя viewModel, связывающая модель элемента с контроллером:
public class CategoryItemViewModel
{
public Item ItemList { get; set; }
public Category CategoryList { get; set; }
}
которую я затем инициализирую в моем главном контроллер как ложный:
public ActionResult Index()
{
CategoryItemViewModel CIVM = new CategoryItemViewModel();
CIVM.ItemList = GetItemModel();
CIVM.CategoryList = GetCategoryModel();
return View(CIVM);
}
public Item GetItemModel()
{
var dataFileItems = Server.MapPath("~/App_Data/Item.txt");
Item iModel = new Item()
{
userDataItems = System.IO.File.ReadAllLines(dataFileItems), //Items Text File
delimiterChar = new[] { ',' },
itemCheck = false,
};
return iModel;
}
Затем я использую его в моем представлении в качестве значения bool, чтобы указать, установлен флажок или нет:
@using (Html.BeginForm("Items", "Items", FormMethod.Post, new { id = "formFieldTwo" }))
{
@Html.CheckBoxFor(m => m.ItemList.itemCheck, false)
}
И, наконец, я пытаюсь получить доступ к этому переменная 'itemCheck', которая должна быть установлена в 'false' в моем ActionResult:
[HttpPost]
public ActionResult Items(string ItemDescription, CategoryItemViewModel m)
{
bool originalValue = m.ItemList.itemCheck;
var FkFile = Server.MapPath("~/App_Data/ForeignKeyValue.txt");
var Fk = System.IO.File.ReadAllText(FkFile);
var dataFileItems = Server.MapPath("~/App_Data/Item.txt");
var numberOfLinesItems = System.IO.File.ReadLines(dataFileItems).Count();
var textFileDataItems = ItemDescription + "," + numberOfLinesItems + "," + Fk + "," + originalValue + Environment.NewLine;
System.IO.File.AppendAllText(dataFileItems, textFileDataItems);
return View();
}
Однако я получаю следующую ошибку в строке 'bool originalValue = m.ItemList.itemCheck;' :
"System.NullReferenceException: 'Ссылка на объект не установлена для экземпляра объекта.' "
Я не понимаю, почему моя программа выдает мне эту ошибку?