Kov*_*xey 14 c# forms asp.net model-binding asp.net-core
我从第三方静态页面(由Adobe Muse生成)捕获发布请求并使用MVC操作处理它.
<form method="post" enctype="multipart/form-data">
<input type="text" name="Name">
...
</form>
Run Code Online (Sandbox Code Playgroud)
路由空表单操作:
app.UseMvc(routes => routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}"));
Run Code Online (Sandbox Code Playgroud)
但是根据行动我有模型,每个属性都是空的
行动:
[HttpPost]
public void Index(EmailModel email)
{
Debug.WriteLine("Sending email");
}
Run Code Online (Sandbox Code Playgroud)
模型:
public class EmailModel
{
public string Name { get; set; }
public string Email { get; set; }
public string Company { get; set; }
public string Phone { get; set; }
public string Additional { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Request.Form 从表单中获取所有值,但模型为空
[0] {[Name, Example]}
[1] {[Email, Example@example.com]}
[2] {[Company, Hello]}
[3] {[Phone, Hello]}
[4] {[Additional, Hello]}
Run Code Online (Sandbox Code Playgroud)
Stu*_*art 37
注意不要为action参数指定与model属性相同的名称,否则binder将尝试绑定到参数并失败.
public async Task<IActionResult> Index( EmailModel email ){ ... }
public class EmailModel{ public string Email { get; set; } }
Run Code Online (Sandbox Code Playgroud)
将actions参数'email'更改为其他名称,它将按预期绑定.
public async Task<IActionResult> Index( EmailModel uniqueName ){ ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17298 次 |
| 最近记录: |