#asp.net-core #entity-framework-core
#asp.сетевое ядро #сущность-структура-ядро
Вопрос:
У меня есть приложение .Net Core Entity Framework, которое позволяет пользователю просматривать списки производства движка, а также редактировать определенные вещи.
Если ошибок нет, все выглядит великолепно.
Но когда у меня возникает ошибка, он использует уродливый вид вместо моего обычного вида.
Вот пример контроллера, который отлично смотрится, когда ошибок нет, но если они есть, это просто черный текст на белом фоне.
Есть ли в любом случае способ, чтобы он соответствовал остальной части моего веб-приложения?
Спасибо!
[HttpPost] [ValidateAntiForgeryToken] public async Tasklt;IActionResultgt; Edit(int id, [Bind("Id,EngineName,FactoryName")] ProductionRound productionRound) { if (ModelState.IsValid) { try { _context.Update(productionRound); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductionRoundExists(productionRound.Id)) { return NotFound(); } else { throw; } } return RedirectToAction(nameof(Index)); } return View(productionRound); }
Ответ №1:
Вы можете настроить страницу с ошибкой и использовать UseStatusCodePagesWithReExecute
UseExceptionHandler
промежуточное программное обеспечение и выполнить страницу с ошибкой, как показано ниже:
Вид( StatusCode.cshtml
находится в Views/Shared
папке):
lt;div class="alert alert-danger"gt; lt;h1 class="alert-heading"gt; lt;spangt;This is a user-friendly error page :)lt;/spangt; lt;/h1gt; Error code: @ViewData["code"] lt;/divgt;
Контроллер:
public class ErrorController : Controller { [Route("Error/{statusCode}")] public IActionResult StatusCodeError(int statusCode) { ViewData["code"] = statusCode; return View("StatusCode"); } }
Startup.cs:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseStatusCodePagesWithReExecute("/Error/{0}"); app.UseExceptionHandler("/Error/500"); //other middleware... }