ASP.Net Core 如何设置输入值
Posted
技术标签:
【中文标题】ASP.Net Core 如何设置输入值【英文标题】:ASP.Net Core How to set value to input 【发布时间】: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]
image
好的。这可以。名称现在是“value-get”。
我将文本框值更改为 123。
@Model.Name is value-get
Name:[123][submit]
image
然后发布它。
@Model.Name 现在是“价值发布”。因为我在 OnPost 更改它。但是文本字段仍然是 123。
@Model.Name is value-post
Name:[123][submit]
image
我在 OnGet 和 OnPost 做同样的事情。我可以通过 OnGet 设置文本字段,但我不能通过 OnPost 设置它。我想知道为什么会这样,并告诉我结构。
【问题讨论】:
【参考方案1】:在客户端绑定数据时,会先从ModelState中获取值,在Model之前可以尝试在Post方法中添加ModelState.Clear();
。
public IActionResult OnPost()
ModelState.Clear();
Name = "value-post";
return Page();
结果:
【讨论】:
非常感谢!我不知道 ModalState。我的疑惑已经解决了! 如果我的回答有帮助,你能接受吗?谢谢。以上是关于ASP.Net Core 如何设置输入值的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 6框架揭秘实例演示[05]:依赖注入基本编程模式
在 ASP.NET Core 应用程序中使用多个 HttpClient 对象