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

使用标签帮助器调用控制器,包括来自ASP.NET核心MVC中搜索栏的数据

  •  0
  • user7885913  · 技术社区  · 6 年前

    我对前端有点陌生,所以请耐心点。

    我试着用ASP.NET核心2.2 MVC创建一个表单,对于这个调用,所有在线的人都建议使用Ajax,但是我想使用新的标记助手。 这是我的代码(控制器 用户 与我所在的控制器不同)

           <form method="get" asp-area="" asp-controller="User" asp-action="UserByUsername">
               <input id="userName" type="text" placeholder="Search.." name="1">
               <button type="submit" value="userName">a</button>
           </form>
    

    按钮调用相同的URL?1=价值

    但我想调用控制器和标记中指定的操作,参数作为字符串user/userbyusername的一部分。/ 什么类型

    我应该做些什么来让它工作?事先谢谢!

    更新 ————————————————————---

    对于ASP路由值,我正在传递参数,但它传递的是“username”,而不是下面texboxid“username”的值

       <form method="get"asp-route-username="userName" asp-area="" asp-controller="User" asp-action="UserByUsername">
            <input id="userName" type="text" placeholder="Search..">
            <button type="submit" value="userName">a</button>
        </form>
    

    如何传递该值?

    1 回复  |  直到 6 年前
        1
  •  1
  •   TanvirArjel    6 年前

    首先写你的 form 具体如下:

    <form method="post" asp-area="" asp-controller="User" asp-action="UserByUserName">
            <input name="userName" type="text" placeholder="Search..">
            <button type="submit">Submit</button>
    </form>
    

    现在在控制器方法中:

    [HttpPost]
    public IActionResult UserByUserName(string userName)
    {
        // do whatever you want to do with `userName`
    
        return View();
    }
    

    这里我用过 post 方法。您也可以使用 get 方法,如代码中所示。为此,只需更换 method="post" 具有 method="get" [HttpPost] 具有 [HttpGet] .

    现在一切正常。

    推荐文章