我认为此表格会导致我在控制器中执行某些操作。问题是我不知道如何将参数传递给action方法。<form class="full-search" asp-controller="Movies" asp-action="Search"> <input type="search" name="searchmovie" placeholder="Search..." class="search-form"> <select name="option" form=""> <option name="option" value="category1">category 1</option> <option name="option" value="category2">category 2</option> <option name="option" value="category3">category 3</option> </select> <i class="fas fa-caret-down"></i> <input type="submit" name="" class="submit-full-search"> <div class="search-btn-submit"> <img src="~/img/search.svg"> </div></form>这是我的控制器:[HttpGet("searchmoview/{option?}/{searchmovie}")]public IActionResult Search(string option, string searchmovie){ //perform some search based on the filters return View("Search", data);}但是当我运行我的代码时,当我单击搜索时,URL看起来像这样:https://localhost:33590/Information/Search而不是像这样:https://localhost:44320/seachmovie/category1/{searchString}关于如何传递参数的任何想法吗?
2 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
你不能 事情不是这样的。默认情况下,表单将发送POST请求,在这种情况下,表单中的输入将作为请求正文的一部分(即不是URL)发送。您可以将方法设置为GET,但是输入值将作为查询字符串的一部分(即?foo=bar
)发送,而不是您要查找的路径的一部分发送。
远程实现所需目标的唯一方法是使用JavaScript根据类别选择框的更改来操纵表单的动作。您将绑定到该change
元素的事件,然后action
以某种方式更改表单元素的属性。
- 2 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消