c# - asp.net core 操作中参数的映射命名约定

标签 c# asp.net-core

我对此有一个敏锐的看法

 <form asp-action="Action">
 @Html.TextBoxFor(m => m.User.Name)
</form>

提交表单时我想获取用户名作为参数, 但是对于 useruserNameuser_Name,该属性不会被映射。

asp.net core 需要什么名称才能正确映射?

public ActionResult Action(MyModel m) // not desired

public ActionResult Action(string name) // tried userName and user_Name
{

}

最佳答案

在此场景中生成的输入的 nameUser.Name。当然,您不能调用参数 User.Name,因为这不是有效的 C# 标识符。实现此功能的一种简单方法是使用 FromForm 属性指示 Model-Binder 使用 User.Name 作为您的 name 参数。例如:

public ActionResult Action([FromForm(Name = "User.Name")] string name)
{

}

使用这种方法,name 可以是您喜欢的任何内容。

关于c# - asp.net core 操作中参数的映射命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52387148/

相关文章:

C#:Swagger/Swashbuckle - 将安全方案与 "AND"连接

asp.net-core - 是否允许在 ASP.NET Core Controller 中使用 Task.Run?

c# - 如何从 ASP.NET Framework 运行 package.json 脚本

c# - Azure 部署后 ASP.NET Core MVC web 应用程序错误

c# - 聊天服务应用

c# - 查找调用的方法

C# MongoDB。在数组中查找项目并仅选择此项

c# - 模拟 DbContext.set<T>.Add() EF6

c# - 根据 StartUp.cs 设置,Cookie 不会过期

c# - 仅从特定网站重定向