Попытка добавить новые данные в таблицу приводит к ошибке: Словарь параметров содержит нулевую запись для параметра «идеHtml

Программисты Html
Ответить
Anonymous
 Попытка добавить новые данные в таблицу приводит к ошибке: Словарь параметров содержит нулевую запись для параметра «иде

Сообщение Anonymous »

Я беру курс ASP.NET UDEMY. К сожалению, это старый курс, и я не верю, чтобы получить там ответ. < /P>
Теперь, что именно происходит. На этом этапе курса мне нужно работать с клиентами. Часть, которая должна показывать список клиентов или детали конкретного клиента, работают нормально. Однако, когда я пытаюсь добавить нового клиента в базу данных, приложение сбои. 'VidlyExcise1.controllers.customersController'. Необязательный параметр должен быть ссылочным типом, нулевым типом или объявлен как необязательный параметр.

Имя параметра: параметры

Описание: Неизвестное исключение произошло во время выполнения текущего веб -запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где он возник в коде. public class CustomersController : Controller
{
private ApplicationDbContext _context;

public CustomersController()
{
_context = new ApplicationDbContext();
}

protected override void Dispose(bool Disposing)
{
_context.Dispose();
}

// GET: Customers
[Route("customers")]

public ActionResult CustomersList()
{
var customers = _context.Customers.Include(c => c.MembershipType).ToList();

var viewModel = new CustomersIndexViewModel
{
Customers = customers
};

return View(viewModel);
}

[Route("customers/{id}")]
public ActionResult CustomerDetails(int id)
{
var customer = _context.Customers.Include(m => m.MembershipType)
.SingleOrDefault(c => c.Id == id); //Eager loading

var viewModel = new CustomerDetailsViewModel
{
Name = customer.Name,
MembershipType = customer.MembershipType,
Birthdate = customer.Birthdate
};

return View(viewModel);
}

[Route("customers/new")]
public ActionResult New()
{
var membershipTypes = _context.MembershipTypes.ToList();

var viewModel = new NewCustomerViewModel()
{
MembershipTypes = membershipTypes,
Customer = new Customer()
};

return View("New", viewModel);
}

[HttpPost]
public ActionResult Create(Customer customer)
{
_context.Customers.Add(customer);
_context.SaveChanges();

return RedirectToAction("CustomersList", "Customers");
}
< /code>
Теперь, когда я нажимаю кнопку, просто чтобы ввести представление для добавления нового клиента, она открывается нормально.
Но когда я пытаюсь нажать кнопку «Сохранить», я получаю ошибку, которую я опубликовал выше.
Я даже пробовал, изменяя код в методе «Создать», даже просто для публикации 404.return HttpNotFound();
< /code>
Итак, как я понимаю, метод создания даже не доходит до той части чего-либо, он просто сбои. PrettyPrint-Override ">@model VidlyExercise1.ViewModels.NewCustomerViewModel
@{
ViewBag.Title = "New";
Layout = "~/Views/Shared/_Layout.cshtml";
}

New Customer
@using (Html.BeginForm("Create", "Customers", FormMethod.Get))
{

@Html.LabelFor(m => m.Customer.Name)
@Html.TextBoxFor(m => m.Customer.Name, new { @class = "form-control" })

@Html.LabelFor(m => m.Customer.Birthdate)
@Html.TextBoxFor(m => m.Customer.Birthdate, new { @class = "form-control" })


@Html.CheckBoxFor(m => m.Customer.IsSubscribedToNewsLetter) Subscribed to newsletter


@Html.LabelFor(m => m.Customer.MembershipTypeId)
@Html.DropDownListFor(m => m.Customer.MembershipTypeId,
new SelectList(Model.MembershipTypes, "Id", "Name"),
"Select Membership Types", new { @class = "form-control" })

@Html.HiddenFor(m=>m.Customer.Id)
Save
}< /code>
< /div>
< /div>
< /p>
Я думаю, что пример кода от наставника на Github почти идентичен. Представление HTML отличается, потому что он также включает в себя дополнительные уроки, но код контроллера кажется правильным. < /P>
Я знаю, что есть необходимость опубликовать то, что я уже пробовал. Я искал потенциальные исправления и попробовал некоторые из них, но проблема в том, что я не знаю, что я ищу.@using (Html.BeginForm("Search", "Person",FormMethod.Get))
< /code>
Не используйте переменную «id» в ActionResult CustomerList: я никогда не использовал ее. Опять же, самому трудно найти ошибку, так как я только недавно начал изучать asp.net.
и еще один вопрос: кнопка «Создать» должна получить «клиент» откуда -то, но где в коде просмотра я на самом деле «отправляю» ее?

Подробнее здесь: https://stackoverflow.com/questions/659 ... ionary-con
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»