Модель страницы ASP.NET Core Razor теряет информацию после публикации - PullRequest
1 голос
/ 20 октября 2019

У меня есть модель, которую я использую на своей странице Razor , я могу получить доступ к ее свойствам, и если я присваиваю им какое-либо значение, я могу получить к ней доступ в своем методе Post, но не во встроенном объектеУ меня есть.

Почему мой адрес НЕДЕЙСТВИТЕЛЕН?

Моя модель:

 public class AddressModel
 {
    public string Street{get;set;}
    // More props...
 }

 public class PersonModel
 {
    public string Name{get;set;}
    public int Age{get;set;}
    public AddressModel Address {get;set;}
 }

Страница бритвы с кодовой страницей:

cshtml.cs

public class CreateModel : PageModel
 {
    [BindProperty]
    public PersonModel Person{get;set;}

    public IActionResult OnGet() { return Page(); }
    public async Task<IActionResult> OnPostAsync()
    {
        // Person.Name is filled and have the string I typed
        // Person.Age is filled and have the value I typed
        // but Person.Address is  NULL. Why?
    }
 }

cshtml:

@page
@model CreateModel

 <form method="post">
    <div asp-validation-summary="ModelOnly" class="text-danger"></div>
    <div class="form-group">
        <label asp-for="Person.Name" class="control-label"></label>
        <input asp-for="Person.Name" class="form-control" />
        <span asp-validation-for="Person.Name" class="text-danger"></span>
    </div>
    <div class="form-group">
        <label asp-for="Person.Age" class="control-label"></label>
        <input asp-for="Person.Age" class="form-control" />
        <span asp-validation-for="Person.Age" class="text-danger"></span>
    </div>
    // ...
    <div class="form-group">
        <label asp-for="Person.Address.Street" class="control-label"></label>
        <input asp-for="Person.Address.Street" class="form-control" />
        <span asp-validation-for="Address.Prop3.Street" class="text-danger"></span>
    </div>
// ...
</form>
...