在RazorPage中,我提交了一个表单,但在模型Punctuation
中,Request.Form [" myfield"]为空。
OnPost()
但是如果我在模型中添加一个类级属性:
<form method="post">
<input id="myfield"/>
<button type="submit">Submit</button>
</form>
并更新表单以使用TagHelper:
public string myfield { get; set; }
当它在OnPost()中遇到断点时填充 <form method="post">
<input asp-for="myfield"/>
<button type="submit">Submit</button>
</form>
。但Request.Form["myfield"]
中的实际属性为空。
有谁知道发生了什么?含义:
为什么没有OnPost()
填充类级属性?
为什么不填充该属性?
- 编辑 -
第一部分是因为我使用Request.Form["myfield"]
代替id
。
仍然不确定name
和模型属性的第二部分。
答案 0 :(得分:1)
Razor页面与Web窗体不同,其中表单字段会自动填充。它们更像是一个简化的MVC控制器。
您可以通过将其作为参数添加到post方法来指定传入所有表单字段:
public async Task<IActionResult> OnPostAsync(IFormCollection data) {
var myField = data["myField"];
...
}
使用Bindable属性是在客户端和服务器之间保留数据的首选方法。