【发布时间】:2018-07-16 21:35:09
【问题描述】:
我创建了一个新的 ASP.Net Core 2 (Razor Pages) 项目
我的模型是:
public class FormularioGenerico
{
public FormularioGenerico()
{
}
public string IP { get; set; }
public List<string> items { get; set; } = new List<string>();
}
在我放的页面上 在page.cshtml.cs
public class EditarModel : PageModel
{
[BindProperty]
public FormularioGenerico ff { get; set; }
[BindProperty]
public string Message { get; set; }
public void OnGet()
{
this.ff = new FormularioGenerico();
ff.IP = "C# FORM";
ff.items.Add("OK1");
ff.items.Add("OK2");
ff.items.Add("OK3");
}
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
var m = ModelState.IsValid; // true
Debug.WriteLine(this.ff.IP); // is Always returning null
Debug.WriteLine(this.ff.items.Count); // is Always returning null
}
}
在page.cshtml上:
@model Formulario.Pages.EditarModel
...
<h1>@Model.ff.IP</h1>
@foreach (var i in Model.ff.items)
{
<div>@i</div>
}
<button type="submit">Enviar</button>
项目正确输出。但是完整的对象不会去 OnPost。
问题是:模型没有在 OnPost 上完全填充。
如何接收在 OnGet 上创建的完整对象,以及用户在表单上所做的更改,在发布到 OnPostAsync() 时?
【问题讨论】: