Asp.net Core动作中参数的映射命名约定

时间:2018-09-18 12:58:10

标签: c# asp.net-core

我对此有一个剃刀视图

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

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

什么是asp.net核心,希望它能正确映射?

public ActionResult Action(MyModel m) // not desired

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

}

1 个答案:

答案 0 :(得分:3)

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

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

}

通过这种方法,name可以随您喜欢。