Почему мои свойства в моем блазоре всегда становятся нулевыми, когда я отправляю формуC#

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

Сообщение Anonymous »

Это мой код:
Судя по тому, что я вижу, я создаю новый экземпляр класса, привязываю каждый атрибут к классу в форме, затем конвертирую в JSON и печать. Чего мне не хватает?
@inject IIdentityService IdentityService;
@inject ErrorService ErrorService;





































Register






Already Have An Account?




Forgot Password?







@code {

[SupplyParameterFromForm(FormName = "RegisterForm")]
private RegisterFormModel RegisterModel { get; set; } = RegisterFormModel.Empty;

private string FirstName { get; set; } = string.Empty;
private string LastName { get; set; } = string.Empty;

private async Task HandleValidSubmit()
{
RegisterModel.Username = $"{FirstName} {LastName}";

var result = await IdentityService.Register(RegisterModel);

if (result.IsFailure)
{
ErrorService.SetErrorMessage(result.ErrorTypes);
}
}


Проблема в том, что когда я привязываю значение формы к тегу p, оно все равно отображает мое входное значение, но когда я отправляю отправку, оно становится нулевым, или я должен сказать значение по умолчанию.< /p>
Я также проверяю это на сервере и пытаюсь изменить значение DTO по умолчанию в серверной части, чтобы я мог знать, когда я отправляю, значение привязки в моей форме Blazor пусто или равно нулю. .
Что я могу сделать? @rendermode не работает в blazor wasm, или я просто что-то упустил.
Изменить: моя проблема также возникает со всеми свойствами, а не только с именем/фамилией
Edit2: Моя услуга
public class IdentityService(
IHttpClientFactory factory,
string baseUrl = nameof(IdentityService),
string endpoint = "api/User"
) : BaseApiService(factory, baseUrl, endpoint), IIdentityService
{
public async Task Register(RegisterFormModel registerModel)
{
var content = SerializeItem(registerModel);
var result = await Client.PostAsJsonAsync($"{Endpoint}/Register", content);
return await HandleResponse(result);
}

public async Task Login(LoginFormModel loginModel)
{
var content = SerializeItem(loginModel);
var result = await Client.PostAsJsonAsync($"{Endpoint}/Login", content);
return await HandleResponse(result);
}
}
protected static StringContent SerializeItem(TItem item)
where TItem : class
{
return new StringContent(JsonSerializer.Serialize(item), Encoding.UTF8, "application/json");
}


Моя модель:
public class RegisterFormModel
{
public string? Email { get; set; }
public string? Username { get; set; }
public string? Password { get; set; }
public string? PhoneNumber { get; set; }

public static RegisterFormModel Empty =>
new()
{
Email = default,
Username = default,
Password = default,
PhoneNumber = default,
};
}



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

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

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

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

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

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

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