将值从字段传递到查询字符串

时间:2016-02-11 12:40:19

标签: c# asp.net asp.net-mvc asp.net-mvc-routing tag-helpers

如何将值设置为查询字符串

<form asp-route="TalkMessageBoardSearch" asp-route-talk_query="[need value from "talk_query" field]" method="post" class="form" role="form">
    <input type="hidden" />
    <div class="input-group">
        <input class="form-control" id="talk_query" name="talk_query" placeholder="Search Talk" />
        <div class="input-group-btn">
            <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button>
        </div>
    </div> </form>

在POST上单击按钮时,它将重定向到&#34; / message_board_search&#34;但它没有查询字符串。我想让它显示&#34; / message_board_search?talk_query = query1&#34;如何从id =&#34; talk_query&#34;中获取值?字段并在单击POST时将其放在查询字符串中。现在&#34; asp-route-talk_query&#34;可以硬编码像asp-route-talk_query =&#34;硬编码&#34;

我使用了&#34; asp-route&#34;因为视图位于/ talk / message_board_search&#34;但我希望它在根路径&#34; / message_board_search&#34;所以这就是我使用路线&#34; TalkMessageBoardSearch。&#34;

的原因

1 个答案:

答案 0 :(得分:0)

您正在尝试使用&lt;形式&gt; POST的method属性。您指定的“方法”会更改行为:

POST方法不会影响查询字符串

GET方法会影响查询字符串。

HTTP Methods: GET vs. POST

HTML < form > method Attribute

如果您需要使用POST但修改查询字符串以包含动态数据,则必须使用Javascript。你不能使用&lt;形式&gt;在这种情况下,方法本身。 (见Vinay的评论,他有一个链接!)