c# - 如何在 MVC 中使用 GET 方法进行搜索

标签 c# html css asp.net-mvc

我正在尝试使用 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>

看起来像下面

enter image description here

用户输入一些文本并按下回车键进行搜索。但是当我进行搜索时,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/

相关文章:

c# - Selenium 拖放在 Chrome 或 Firefox 中不起作用

c# - 字符串格式 : scale and precision from String. 格式

c# - 从 c# 调用 c zlib 解压缩

html - 如何使用网格动态设置行的高度?

java - 在selenium中,当HTML中不存在文本但来自api响应时,我们可以从网页中检索文本吗?

javascript - Jquery对话框高度和垂直滚动条

c# - 以编程方式访问 .NET API

python - html代码问题如何放入数据库

javascript - 带复选框的样式下拉菜单

javascript - 滚动页面时将 DIV 元素移动/固定到顶部