发布表单但未发布视图状态

时间:2010-05-25 08:20:17

标签: c# asp.net forms get

我有一个网络表单,想要“获取”它到另一个页面.. 无论如何提交它而不发布ViewState和我不想要的其他位?

或者我应该抓住提交按钮单击并使用我自己构建的查询字符串重定向。

4 个答案:

答案 0 :(得分:2)

你有几个选择:

您不必在所有页面上禁用ViewState,只需要在不关心要保存的状态的页面上禁用。

但如果您不想使用它,还可以选择完全禁用ViewState。

如果您只想自己编写一个GET,那么您可以使用jQuery,这样您只需传递您真正想要的参数,这样您就可以100%控制发布/获取的内容。

答案 1 :(得分:0)

如果您没有使用viewstate,为什么要让它保持启用状态?只是禁用它。对于每个服务器控件,设置EnableViewState = False并且您可以免除它。如果您需要viewstate,它将始终成为帖子的一部分。

答案 2 :(得分:-1)

您可以在搜索按钮中添加一个事件处理程序,并执行与此类似的操作

private void button_Click(object sender, EventArgs e)
{
    String query = queryTextBox.Text;
    Response.Redirect("SearchResults.aspx?query=" + query);
}

使用JavaScript

function doSearch()
{
    // Assuming you are not using jQuery, 
    // using jQuery it would be $('#queryTextBox').value instead
    var queryString = document.getElementById('queryTextBox').value;

    window.open("SearchResults.aspx?query=" + queryString);
    return false;
}

HTML

<input type="text" id="queryTextBox" />
<input type="button" onclick="return doSearch()" value="Go" />

答案 3 :(得分:-1)

持有视图状态有不同的方法。

我过去曾经不得不在服务器上保持viewstate(使用ApplicationState / Session,无法记住),以获得更重的AJAX页面以支持更快的更新。效果很好。

请参阅Page.LoadPageStateFromPersistenceMediumPage.SavePageStateToPersistenceMedium

很抱歉,没有来自Reflector的链接。