所以我还是C#的新手,我正在测试关于搜索功能的项目,当用户键入他们想要在文本框中找到的内容并按回车键时,它会将它们重定向到我的搜索页面。但是,每次我尝试在搜索按钮中键入内容并按回车键出来的内容
http://localhost:51182/Default.aspx
至
http://localhost:51182/Default.aspx?ctl00%24search=(whatever I keyed)
。
由于搜索功能在masterpage.aspx中,我不能使用asp:buttons或者什么。
这是我在母版页中的代码。
<form class="navbar-form navbar-right">
<input type="text" id="search" class="form-control" placeholder="Search..." runat="server">
<button class="btn btn-default" type="submit" id="Button1" onserverclick="Button1_OnClick"><i class="glyphicon glyphicon-search"></i></button>
</form>
这是我的主页的c#代码。
protected void Button1_OnClick(object sender, EventArgs e)
{
//The code was commented out since the search name was not able to be recognized in my webform input id so i tried to deal with the response first.
//String searchtext = search;
//String Search = Server.MapPath("Website\\HTML\\SearchEngine.aspx");
Response.Redirect("~/Website/HTML/SearchEngine.aspx?search=");
}
我主要把我认为重要的代码放在一边,如果需要,其他部分就是这么说的。除此之外,如果这是与其他问题的重复,我很抱歉,因为我一直在尝试解决其他问题的答案,但我无法完成工作,然后我提交了这个问题。
希望你们能帮助我。
答案 0 :(得分:1)
<form class="navbar-form navbar-right">... </form>
在ASP.NET WebForm中,您不能使用其他表单标记,因为已有runat="server"
的主表单标记。
最简单的方法是使用 Panel 。当用户在文本框中键入并按 Enter 键时,它将调用Button1_OnClick
事件。
例如,
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="SearchLinkButton">
<asp:TextBox runat="server" ID="SearchTextBox" CssClass="form-control"
placeholder="Search..." />
<asp:LinkButton runat="server" ID="SearchLinkButton" CssClass="btn btn-primary"
OnClick="SearchLinkButton_Click">
<i class="glyphicon glyphicon-search"></i>
</asp:LinkButton>
</asp:Panel>
答案 1 :(得分:0)
所以你不能拥有嵌套表格,但这并不是说你不能在同一页面上有多个表格,它们只是不能重叠,只有一个可以是ASP.NET表单[runat = server]。只需确保搜索表单(可以是一个vanilla HTML表单)放在任何Form [runat = server]之外的母版页中,并格式化搜索表单,如下所示:
<form class="navbar-form navbar-right" action="/Website/HTML/SearchEngine.aspx">
<input type="text" name="search" class="form-control" placeholder="Search..." />
<button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
</form>