我对此有一个敏锐的看法
<form asp-action="Action">
@Html.TextBoxFor(m => m.User.Name)
</form>
提交表单时我想获取用户名作为参数,
但是对于 user
、userName
、user_Name
,该属性不会被映射。
asp.net core 需要什么名称才能正确映射?
public ActionResult Action(MyModel m) // not desired
public ActionResult Action(string name) // tried userName and user_Name
{
}
最佳答案
在此场景中生成的输入的 name
是 User.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/