Я создаю третью более или менее идентичную форму в проекте MVC (это означает, что я копирую и вставляю, чтобы сэкономить время).Эта новая форма, содержащая только один элемент управления, выдает пустую ссылку на строку @ Html.AntiForgeryToken ().
Представление:
@model SubSheets.ViewModels.TaskItemViewModel
@using (Html.BeginForm("CreateTaskItem", "TaskItems"))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(m => m.Name, "Task Name", new {@class = "control-label col-md-2"})
<div class="col-md-2">
@Html.EditorFor(m => m.Name, new {htmlAttributes = new {@class = "form-control"}})
@Html.ValidationMessageFor(m => m.Name, "", new {@class = "text-danger"})
</div>
</div>
</div>
}
Контроллер:
[Authorize]
[HttpPost]
public ActionResult CreateTaskItem(TaskItemViewModel viewModel)
{
/* db context actions */
return View("../WorkItems/CreateWorkItem");
}
Форма сообщений просто отлично, данные сохраняются также хорошо.Однако я получаю ошибку нулевой ссылки, строка 13:
Ссылка на объект не установлена на экземпляр объекта.
Line 11: @using (Html.BeginForm())
Line 12: {
Line 13: @Html.AntiForgeryToken()
Line 14:
Line 15: <div class="form-horizontal">
Мне показалось, что я понял помощника HTMLдобавляет скрытое поле формы, которое гарантирует, что сообщение Post не поступает со стороннего домена.Я не ожидал получить исключение нулевой ссылки из поля формы?