我正在尝试使用 GET 方法进行搜索,但无法按照我需要的方式进行。我的 html-css 代码如下所示
<div class="top_search_form">
<a class="top_search_btn" href="javascript:void(0);" ><i class="fa fa-search"></i></a>
<form method="GET" action="/Banyo/Urunler">
<input type="text" name="search" value="Search" onFocus="if (this.value == 'Search') this.value = '';" onBlur="if (this.value == '') this.value = 'Search';" />
</form>
</div>
看起来像下面
用户输入一些文本并按下回车键进行搜索。但是当我进行搜索时,URL 如下所示,这不是我需要的方式。
/Banyo/Urunler?search=asd
当用户点击回车时。我想看下面的链接
/Banyo/Urunler/asd
我怎样才能得到这个 URL“/Banyo/Urunler/asd”?我应该怎么做才能得到这个?
我的 MapRoute 如下所示
routes.MapRoute(
"Urunler", // name it!
"Banyo/Urunler/{Filtre}", // Route name
new { controller = "Banyo", action = "Urunler", Filtre = UrlParameter.Optional } // Parameter defaults
);
我更新了我的 html
<form method="GET" action="/Banyo/Urunler">
最佳答案
如果您的操作(在本例中为搜索)中的参数名称未在您的路由配置中定义,则在执行 GET 请求时它将作为查询字符串参数附加。
默认路由定义了一个 id 参数,因此您可以改用它。
您的搜索字段将重命名为 id,并且您的操作也会有一个 id 参数。
public ActionResult Urunler(string id)
{
}
另一种选择是使用属性路由(如果您使用的是 MVC4 及更高版本)。
Route("Banyo/Urunler/{search}")]
public ActionResult Urunler(string search)
{
}
MVC4 中的属性路由需要您自己安装 nuget 包……我认为它们是默认添加在 MVC5 中的
关于c# - 如何在 MVC 中使用 GET 方法进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440591/