【发布时间】:2011-01-05 20:51:28
【问题描述】:
好吧,我正在尝试使 ASP.NET url 看起来对用户友好,就像 in this question 解释的那样。所以我创建了一个 ASP.Net 表单,并在上面放置了asp:textbox 和asp:button。我还设置了onclientclick 属性来调用通过设置windows.location.href 导航到智能URL 的JS 函数。在 Firefox 中它运行良好,但在 IE 和 Opera 中,浏览器首先导航到智能 url,然后关闭连接并使用 asp.net 表单操作发送回发。
我尝试使用 html 按钮而不是服务器按钮来解决它。它可以工作,但问题是它不能设置为 asp.net 表单的默认值。所以'如果用户点击它,它就会工作。但是如果用户只是在表单处于活动状态时按下回车,表单会执行其操作,因此不会按下按钮并且不会发生 JS url 重写。那么我该如何解决这个问题呢?
我的 JS 看起来像这样:
function searchRedirect() {
var query = $get('colSearch');
window.location.href = 'colSearch?q=' + query.value;
return false;
}
在 search.aspx 我有
<form id="MainForm" runat="server" method="get">
<asp:TextBox id="colSearch" runat="server" Width="615px" CssClass="searchLine"></asp:TextBox>
<input id="Button1" type="button" value="Search!" onclick="searchRedirect();" class="search" />
我也试过asp:button:
<form id="MainForm" runat="server" method="get" defaultbutton="submitReqBtn">
<asp:TextBox id="colSearch" runat="server" Width="615px" CssClass="searchLine"></asp:TextBox>
<asp:Button runat="server" Text="Search!" ID="submirReqBtn"
onclientclick="searchRedirect();" CausesValidation="False"
EnableViewState="False" UseSubmitBehavior="False"></asp:Button>
</form>
【问题讨论】:
标签: asp.net javascript friendly-url