使用提交时的文本框值作为查询字符串变量

时间:2011-01-12 19:34:31

标签: asp.net asp.net-mvc

如何获取文本框值并在提交时的查询字符串中使用它?我希望它可以这样开始,

/新闻?收藏=真

并在用户进入搜索并点击搜索后结束此类内容。

/新闻查询=试验&安培;收藏=真

控制器操作如下所示

public ActionResult Index(string query,bool favorites)
{
   //search code   
}

这个question与我想做的事情很接近,但是我想使用查询字符串并维护查询字符串中的现有值。

感谢。

2 个答案:

答案 0 :(得分:5)

两种可能性:

  1. 将文本框放在<form> method="GET"
  2. 使用javascript读取值并将其传递给服务器(使用AJAX或window.location执行重定向)
  3. <form>的示例:

    <% using (Html.BeginForm("index", "news", FormMethod.Get)) { %>
        <label for="query">Query:</label>
        <%= Html.TextBox("query") %>
        <input type="submit" value="Search" />
    <% } %>
    

    javascript示例:

    <label for="query">Query:</label>
    <%= Html.TextBox("query") %>
    <%= Html.ActionLink("Search", "index", "news", new { id = "search" }) %>
    

    然后在一个单独的js文件中:

    $(function() {
        $('#search').click(function() {
            var query = $('#query').val();
            // Here you could use AJAX instead of window.location if you wish
            window.location = this.href + '?query=' + encodeURIComponent(query);
            return false;
        });
    });
    

答案 1 :(得分:0)

使用Darin的q = '''SELECT * FROM MY_TABLE WHERE FIELD LIKE ?''' some_query_value = '%test%' cursor.execute(q, [some_query_value]) 以上答案,但使用Razor标记:

<form>