Ошибка запроса к базе данных Blazor Pages из-за ошибки моделиC#

Место общения программистов C#
Ответить
Anonymous
 Ошибка запроса к базе данных Blazor Pages из-за ошибки модели

Сообщение Anonymous »

У меня есть следующая страница создания в приложении Blazor, и я пытаюсь заставить ее добавить запись в базу данных. Теоретически страница создания должна позволять вам добавлять список наблюдения, который имеет имя, идентификатор и идентификатор пользователя в качестве внешнего ключа.

watchlists/create:

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

@page "/watchlists/create"
@using Microsoft.EntityFrameworkCore
@using RookSecurities.com.Models
@using System.Security.Claims
@using Microsoft.AspNetCore.Authorization
@inject IDbContextFactory DbFactory
@inject NavigationManager NavigationManager
@inject AuthenticationStateProvider Auth

@attribute [Authorize]

Create

Create

Watchlist







Name:



Create




[url=/watchlists]Back to List[/url]

@code {
[SupplyParameterFromForm]
private Watchlist Watchlist { get; set; } = new();

// To protect from overposting attacks, see https://learn.microsoft.com/aspnet/core/blazor/forms/#mitigate-overposting-attacks.
private async Task AddWatchlist()
{
var authState = await Auth.GetAuthenticationStateAsync();
var user = authState.User;

if (user.Identity?.IsAuthenticated == true)
{
var userId = user.FindFirst(ClaimTypes.NameIdentifier)?.Value;
if (userId != null)
{
Watchlist.UserId = userId; // Set here, NOT in form

await using var db = await DbFactory.CreateDbContextAsync();
db.Watchlist.Add(Watchlist);
await db.SaveChangesAsync();

Watchlist = new(); // Reset
}
}
}
}
Модель списка наблюдения:

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

using RookSecurities.com.Data;
using System.ComponentModel.DataAnnotations;

namespace RookSecurities.com.Models
{
public class Watchlist
{
[Required]
public int Id { get; set; }
[Required]
public string UserId { get; set; }
public string Name { get; set; }
public ApplicationUser User { get; set; } = null!;
public List Symbols { get; set; } = new();
}
}
Я получаю сообщение об ошибке:

InvalidOperationException: EditForm требуется либо параметр Model, либо параметр EditContext, укажите один из них.

Однако, глядя на код EditForm, кажется, что модель установлена: Что мне нужно добавить, чтобы этот вызов базы данных работал?


Подробнее здесь: https://stackoverflow.com/questions/798 ... odel-error
Ответить

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

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

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

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

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