Ошибка MVC: CS $ <> 8__locals0.position is null - PullRequest
0 голосов
/ 21 декабря 2018

Любая идея, почему я получаю ошибку 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...