MVC Url.Action在post中导致NullReferenceException

时间:2017-11-16 03:54:16

标签: asp.net-mvc

我试图在我的表单页面上设置一个按钮,让我回到上一个需要参数的视图,我将ViewModel传递给视图,其中包含指定的值I& #39; m使用。如果该按钮未被注释,则该按钮工作正常,但是表单帖子发送NullReferenceException,如果按钮被注释,则该表单完全按照我的意愿工作。

打破表单的按钮

<button type="button" onclick="location.href='@Url.Action("Assignments","Session", new { Model.CourseName })'">Go Back</button>

控制器代码

public IActionResult CreateAssignment(string courseName)
    {
        CreateAssignmentModel assignmentModel = new CreateAssignmentModel();
        assignmentModel.CourseName = courseName;
        return View(assignmentModel);
    }

[HttpPost]
    public IActionResult CreateAssignment(CreateAssignmentModel assignment)
    {
        if (ModelState.IsValid)
        {
            ModelState.Clear();
            return View(assignment.CourseName);
        }
        else
        {
            return View(assignment.CourseName);
        }
    }

public IActionResult Assignments(string courseName)
    {
        var assignments = storedProcedure.getAssignments(User.Identity.Name, courseName);
        var AssignmentsView = new AssignmentsViewModel{CourseName = courseName};

        foreach (var Assignment in assignments.ToList())
        {
            AssignmentsView.Assignments.Add(Assignment);
        }
        return View(AssignmentsView);
    }

型号代码

public class CreateAssignmentModel
{
    public string UserName { get; set; }
    public string CourseName { get; set; }
    [Required]
    public string AssignmentName { get; set; }
    [Required]
    public string AssignmentDescription { get; set; }
    [Required]
    public int TotalPoints { get; set; }
    [Required]
    public DateTime DueDate { get; set; }
}

带按钮的表单

<button type="button" onclick="location.href='@Url.Action("Assignments","Session", new { Model.CourseName })'">Go Back</button>

    <div class="row">
        <div class="col-md-4">
            <form asp-route-returnUrl="@ViewData["ReturnUrl"]" method="post">
                <h4>Create an Assignment</h4>
                <hr />
                <div class="form-group">
                    <label asp-for="AssignmentName" class="control-label">Assignment Name</label>
                    <input asp-for="AssignmentName" class="form-control" placeholder="Assignment Name" />
                    <span asp-validation-for="AssignmentName" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="AssignmentDescription" class=" control-label">Assignment Description</label>
                    <input asp-for="AssignmentDescription" class="form-control" placeholder="Assignment Description" />
                    <span asp-validation-for="AssignmentDescription" class="text-danger"></span>
                </div>

                <div class="form-group">
                    <label asp-for="TotalPoints" class=" control-label">Total Points</label>
                    <input asp-for="TotalPoints" class="form-control" placeholder="Points" />
                    <span asp-validation-for="TotalPoints" class="text-danger"></span>
                </div>

                <div class="form-group">
                    <label asp-for="DueDate" class=" control-label">Due Date</label>
                    <input asp-for="DueDate" class="form-control" placeholder="Due Date" />
                    <span asp-validation-for="DueDate" class="text-danger"></span>
                </div>
                <br />
                <button type="submit" class="btn btn-primary">Create</button>
            </form>
        </div>
    </div>

很抱歉由于缺乏简洁性,我已经针对我的问题查看了NullReferenceException个解决方案,但没有一个有效。

0 个答案:

没有答案