【发布时间】:2022-01-14 19:57:57
【问题描述】:
我对如何在文本表单中放置值感到困惑。
我创建了一个简单的表单。
test.cshtml
@@Model.Name is @Model.Name
<form method=post>
Name:<input asp-for="Name" />
<button asp-page="test">Submit</button>
</form>
test.cshtml.cs 是
[BindProperty(SupportsGet = true)]
public string Name { get; set; }
public IActionResult OnGet()
{
Name = "value-get";
return Page();
}
public IActionResult OnPost()
{
Name = "value-post";
return Page();
}
首先得到的结果是
@Model.Name is value-get
Name:[value-get] [submit]
好的。这可以。名称现在是“value-get”。
我将文本框值更改为 123。
@Model.Name is value-get
Name:[123][submit]
然后发布它。
@Model.Name 现在是“价值发布”。因为我在 OnPost 更改它。但是文本字段仍然是 123。
@Model.Name is value-post
Name:[123][submit]
我在 OnGet 和 OnPost 做同样的事情。我可以通过 OnGet 设置文本字段,但我不能通过 OnPost 设置它。我想知道为什么会这样,并告诉我结构。
【问题讨论】: