Я пытаюсь сохранить модель в своей базе данных через форму сообщения. Вот как выглядит модель:
public class CreditCard
{
public CardDetails cardDetails { get; set; }
public UserDetails userDetails { get; set; }
}
public class CardDetails
{
public string CardNumber { get; set; }
}
public class UserDetails
{
public string Name { get; set; }
}
Вот представление, которое отображает форму, я использую компонент представления для каждого объекта в CreditCard
:
@model CreditCard
<form asp-controller="Card" asp-action="Save" method="post">
<button type="submit" name="save" class="btn bg-blue"></button>
@await Component.InvokeAsync("CardDetails", Model.cardDetails)
@await Component.InvokeAsync("UserDetails", Model.userDetails)
</form>
Компонент CardDetails:
@model CardDetails
<div class="form-group">
@Html.EditorFor(model => model.CardNumber)
</div>
Это работает нормально, т.е. компоненты получают данные из базы данных, а поля заполняются просто отлично. Однако, когда я пытаюсь POST через кнопку сохранения, он возвращает ноль. Вот действие (которое срабатывает успешно, но параметр cardDetails
и userDetails
имеет значение NULL:
public async Task<ActionResult> Save(CreditCard creditCard)
{
// do stuff but creditCard.cardDetails and creditCard.userDetails are both null
}
Может кто-нибудь понять, что здесь не так?