代码之家  ›  专栏  ›  技术社区  ›  gsharp

ASP.NET核心操作中参数的映射命名约定

  •  1
  • gsharp  · 技术社区  · 8 年前

    我有一个剃刀的视野

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

    提交表单时,我想获取作为参数的用户名称, 但与 user , userName , user_Name 属性未映射。

    ASP.NET核心需要什么作为名称才能正确映射?

    public ActionResult Action(MyModel m) // not desired
    
    public ActionResult Action(string name) // tried userName and user_Name
    {
    
    }
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Kirk Larkin    8 年前

    这个 name 在此方案中生成的输入为 User.Name . 不能调用参数 用户名称 当然,因为这不是有效的C标识符。一个简单的方法是指导模型绑定器使用 用户名称 为了你 名称 参数使用 FromForm 属性。例如。:

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

    通过这种方法, 名称 可以是你喜欢的任何东西。

    推荐文章