ASP.Net核心如何设置输入值
ASP.Net Core How to set value to input
我对如何以文本形式放置值感到困惑。
我创建了一个简单的表单。
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]
image
好的。这可以。名称现在是“value-get”。
我把文本框值改成123。
@Model.Name is value-get
Name:[123][submit]
image
然后post它。
@Model.Name 现在是“值-post”。因为我在 OnPost 更改它。但是文本字段仍然是 123.
@Model.Name is value-post
Name:[123][submit]
image
我在 OnGet 和 OnPost 做同样的事情。我可以通过 OnGet 设置文本字段,但我不能通过 OnPost.I 设置它想知道为什么会这样并告诉我有关结构的信息。
在客户端绑定数据时,它会先从ModelState中获取值,然后再从Model中获取。您可以尝试将ModelState.Clear();
添加到Post方法中。
public IActionResult OnPost()
{
ModelState.Clear();
Name = "value-post";
return Page();
}
结果:
我对如何以文本形式放置值感到困惑。
我创建了一个简单的表单。
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]
image
好的。这可以。名称现在是“value-get”。
我把文本框值改成123。
@Model.Name is value-get
Name:[123][submit]
image
然后post它。
@Model.Name 现在是“值-post”。因为我在 OnPost 更改它。但是文本字段仍然是 123.
@Model.Name is value-post
Name:[123][submit]
image
我在 OnGet 和 OnPost 做同样的事情。我可以通过 OnGet 设置文本字段,但我不能通过 OnPost.I 设置它想知道为什么会这样并告诉我有关结构的信息。
在客户端绑定数据时,它会先从ModelState中获取值,然后再从Model中获取。您可以尝试将ModelState.Clear();
添加到Post方法中。
public IActionResult OnPost()
{
ModelState.Clear();
Name = "value-post";
return Page();
}
结果: