Любая идея, почему я получаю ошибку CS $ <> 8__locals0.position был нулевым. при нажатии кнопки Сохранить.
System.NullReferenceException: 'Ссылка на объект не установлена для экземпляраобъекта. '
CS $ <> 8__locals0.position был нулевым.
Вот мой существующий код.Я использую Visual Studio 2017. Контроллер Редактировать:
public ActionResult EditPosition(int ID)
{
var position = _context.OSUSR_U1Z_COMPANYPOSITION.SingleOrDefault(a => a.ID == ID);
ViewBag.GroupID = position.GROUPID;
ViewBag.CompanyID = position.COMPANYID;
ViewBag.DepartmentID = position.DEPARTMENTID;
if (position == null)
return HttpNotFound();
return PartialView("_PositionForm", position);
}
Сохранить:
[HttpPost]
public ActionResult SavePosition(OSUSR_U1Z_COMPANYPOSITION position)
{
if (position.ID == 0) // ERROR: CS$<>8__locals0.position was null.
{
position.STATUS = true;
position.ADDEDBY = 1;
position.GROUPID = 0;
position.DATEADDED = DateTime.Now;
_context.OSUSR_U1Z_COMPANYPOSITION.Add(position);
}
else
{
var positionInDb = _context.OSUSR_U1Z_COMPANYPOSITION.Single(c => c.ID == position.ID);
positionInDb.GROUPID = 0;
positionInDb.COMPANYID = position.COMPANYID;
positionInDb.DEPARTMENTID = position.DEPARTMENTID;
positionInDb.POSITION = position.POSITION;
positionInDb.JOBDESCRIPTION = position.JOBDESCRIPTION == null ? "" : position.JOBDESCRIPTION;
positionInDb.STATUS = position.STATUS;
positionInDb.ADDEDBY = position.ADDEDBY;
positionInDb.DATEADDED = DateTime.Now;
}
_context.SaveChanges();
return RedirectToAction("List", "Department");
}
Просмотр:
@using System.Activities.Expressions
@using System.Net.Mime
@model HRMS.Models.OSUSR_U1Z_COMPANYPOSITION
<div class="modal-header" style="background-color:dimgrey;">
<h4 class="modal-title font-weight-bold" style="color:white;" id="myModalLabel">
@if (@Model.ID == 0)
{
<text>Add Position - @ViewBag.DepartmentName</text>
}
else
{
<text>Edit Position - @Model.OSUSR_U1Z_COMPANYDEPARTMENT.DEPARTMENTNAME</text>
}
</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="color:cyan;">X</button>
@using (Html.BeginForm("SavePosition", "Department"))
{
<div style="width: 100%">
<table style="align-self: center; width: 100%;" cellpadding="10px">
<tr>
<td>POSITION NAME:</td>
<td>
@Html.TextBoxFor(m => m.POSITION, new {@class = "form-control"})
</td>
</tr>
<tr>
<td>JOB DESCRIPTION:</td>
<td>
@Html.TextAreaFor(m => m.JOBDESCRIPTION, new {@class = "form-control max-width"})
</td>
</tr>
<tr>
<td colspan="4">
<div align="center"><button type="submit" class="btn btn-primary">Save</button> <button type="button" class="btn btn-secondary" data-dismiss="modal" aria-hidden="true">Cancel</button> </div>
</td>
</tr>
</table>
</div>
@Html.HiddenFor(m => m.ID)
@Html.HiddenFor(m => m.STATUS)
@Html.HiddenFor(m => m.COMPANYID, new {@Value = ViewBag.CompanyID})
@Html.HiddenFor(m => m.DEPARTMENTID, new {@Value = ViewBag.DepartmentID})
}
Ошибка источника:
Line 197: public ActionResult SavePosition(OSUSR_U1Z_COMPANYPOSITION position)
Line 198: {
Line 199: if (position.ID == 0)
Line 200: {
Line 201: position.STATUS = true;
Трассировка стека:
[NullReferenceException: Object reference not set to an instance of an object.]
HRMS.Controllers.DepartmentController.SavePosition(OSUSR_U1Z_COMPANYPOSITION position) in C:\Users\crlibrero\Documents\Visual Studio 2017\Projects\HRMS\HRMS\Controllers\DepartmentController.cs:199
lambda_method(Closure , ControllerBase , Object[] ) +138
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +34
System.Web.Mvc.Async.<>c.<BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +38
System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +73
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +41
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__11_0() +71
System.Web.Mvc.Async.<>c__DisplayClass11_1.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2() +385
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c__DisplayClass3_6.<BeginInvokeAction>b__3() +50
System.Web.Mvc.Async.<>c__DisplayClass3_1.<BeginInvokeAction>b__5(IAsyncResult asyncResult) +185
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +38
System.Web.Mvc.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) +26
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +52
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +38
System.Web.Mvc.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) +40
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +393
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +195
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +128