Возникло необработанное исключение при обработке запроса при формировании структуры объекта.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Возникло необработанное исключение при обработке запроса при формировании структуры объекта.

Сообщение Anonymous »

Чтобы дать вам некоторый контекст:
В настоящее время я работаю над простой таблицей MVC CRUD Scaffolded.
И у меня возникли проблемы с реализацией связей.
Просто независимые таблицы работают нормально, это просто каркас модели и все.
Но когда я пытался реализовать связь вот так:

Код: Выделить всё

 public class Activo
{
public int id { get; set; }

[Required]
[StringLength(100)]
public string Marca { get; set; }

[Required]
[StringLength(100)]
public string Modelo { get; set; }
[Required]
[StringLength(100)]
public string Tarjeta_Video { get; set; }
public int? ID_Usuario { get; set; }
public int? ID_Procesador { get; set; }
public int? ID_Memoria { get; set; }
public int? ID_DiscoDuro { get; set; }

// Navigation properties
[ForeignKey("ID_Usuario")]
public virtual Usuario Usuario { get; set; }

[ForeignKey("ID_Procesador")]
public virtual Procesador Procesador { get; set; }

[ForeignKey("ID_Memoria")]
public virtual Memoria Memoria { get; set; }

[ForeignKey("ID_DiscoDuro")]
public virtual DiscoDuro DiscoDuro { get; set; }
}
Это обновленное управление с помощью лесов:

Код: Выделить всё

// GET: Activos/Create
public IActionResult Create()
{
ViewData["ID_DiscoDuro"] = new SelectList(_context.DiscoDuro, "id", "Marca");
ViewData["ID_Memoria"] = new SelectList(_context.Memoria, "id", "Marca");
ViewData["ID_Procesador"] = new SelectList(_context.Procesador, "id", "Marca");
ViewData["ID_Usuario"] = new SelectList(_context.Usuario, "id", "ApellidoMaterno");
return View();
}

// POST: Activos/Create
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task Create([Bind("id,Marca,Modelo,Tarjeta_Video,ID_Usuario,ID_Procesador,ID_Memoria,ID_DiscoDuro")] Activo activo)
{
if (ModelState.IsValid)
{
_context.Add(activo);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
ViewData["ID_DiscoDuro"] = new SelectList(_context.DiscoDuro, "id", "Modelo", activo.ID_DiscoDuro);
ViewData["ID_Memoria"] = new SelectList(_context.Memoria, "id", "Modelo", activo.ID_Memoria);
ViewData["ID_Procesador"] = new SelectList(_context.Procesador, "id", "Modelo", activo.ID_Procesador);
ViewData["ID_Usuario"] = new SelectList(_context.Usuario, "id", "ApellidoMaterno", activo.ID_Usuario);
return View(activo);
}
А это мое мнение: Итак, идея довольно проста, по крайней мере, я так думал. Я просто хотел получить данные на контроллерах, которые затем отправят их в представления через ViewData, который будет использоваться через объект ViewBag. И это в некоторой степени работает.
Когда я пытаюсь создать Activo, он позволяет мне открыть раскрывающийся список и просмотреть все доступные данные, находящиеся в таблицах Memoria, DiscoDuro и т. д.Но как только я нажимаю «Создать», появляется эта ошибка:

Код: Выделить всё

An unhandled exception occurred while processing the request.
NullReferenceException: Object reference not set to an instance of an object.

Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.GetListItemsWithValueField()
Я попробовал изменить способ отправки данных. Но я просто не могу это исправить. Я также читал в каком-то сообщении, что эта проблема может быть связана с тем, что сообщение HTTP имеет то же имя, что и другие. Это не тот случай, когда я не использую раскрывающееся меню, то есть я просто жестко ввожу идентификатор, они работают.
Это заставило меня поверить, что проблема в том, как я их использую. значения.
Я знаю, что, вероятно, он неправильно захватывает входное значение, но, поскольку я новичок в Razor Pages и MVC, я просто не могу на всю жизнь понять, что я делаю, и пока один, как это исправить. . Я просто чувствую себя потерянным.
Я буду очень признателен за любые рекомендации по исправлению, повторному решению этой проблемы или просто какой-либо способ сделать это проще, выполнимее или просто лучше.
Спасибо, что уделили время.
Это полный стек вызовов:

Код: Выделить всё

Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.GetListItemsWithValueField()
Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList.GetEnumerator()
System.Collections.Generic.List..ctor(IEnumerable collection)
System.Linq.Enumerable.ToList(IEnumerable source)
Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateGroupsAndOptions(string
optionLabel, IEnumerable selectList,
ICollection currentValues)
Microsoft.AspNetCore.Mvc.ViewFeatures.DefaultHtmlGenerator.GenerateSelect(ViewContext
viewContext, ModelExplorer modelExplorer, строка optionLabel, строковое
выражение, IEnumerable selectList,
ICollection currentValues, boolallowMultiple, object
htmlAttributes)
Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Process(TagHelperContext
context, вывод TagHelperOutput)
Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.ProcessAsync(TagHelperContext
context, выходные данные TagHelperOutput)
Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.RunAsync(TagHelperExecutionContext
executionContext)
AspNetCoreGeneratedDocument.Views_Activos_Create.b__19_0()
Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.GetChildContentAsync(bool
useCachedResult, кодировщик HtmlEncoder)
Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ProcessAsync(TagHelperContext
контекст, вывод TagHelperOutput)
Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.g__Awaited|0_0(Task
task, TagHelperExecutionContext ExecutionContext, int i, int count)
AspNetCoreGeneratedDocument.Views_Activos_Create.ExecuteAsync()
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage
страница, контекст ViewContext)
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage
страница, контекст ViewContext, bool ignoreViewStarts)
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(контекст ViewContext)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext
viewContext, string contentType, Nullable statusCode)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext
viewContext, строка contentType, статус-код, допускающий значение NULL)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ActionContext
actionContext, представление IView, ViewDataDictionary viewData,
ITempDataDictionary tempData, string contentType, Nullable
statusCode)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.ExecuteAsync(ActionContext
контекст, результат ViewResult)
Microsoft.AspNetCore.Mvc.ViewResult.ExecuteResultAsync(ActionContext
контекст)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|22_0(ResourceInvoker
invoker, результат IActionResult)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|30_0(вызов ResourceInvoker, Task LastTask, State next,
Область области, состояние объекта, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed
context)
Microsoft.AspNetCore.Mvc .Infrastructure.ResourceInvoker.ResultNext(ref State next, ref Область видимости, ref State Object, ref
bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker
invoker, Task lastTask, State next, Область области действия, состояние объекта, bool
isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed
context)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Область области, состояние ref-объекта, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker
invoker)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker
invoker)
Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext
контекст)
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext
контекст)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext
контекст)


Подробнее здесь: https://stackoverflow.com/questions/791 ... folding-an
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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