C# 发布表单但不发布viewstate

C# 发布表单但不发布viewstate,c#,asp.net,forms,get,C#,Asp.net,Forms,Get,我有一个web表单,希望将其“获取”到另一个页面。。 无论如何,是否可以在不发布ViewState和其他我不想要的内容的情况下提交它 或者我应该捕获提交按钮并使用我自己构建的查询字符串重定向。如果您没有使用viewstate,为什么要保持启用状态?禁用它就行了。对于每个服务器控件,将EnableViewState设置为False,这样您就不必担心了。如果您需要viewstate,它将一直是帖子的一部分。如果您没有使用viewstate,为什么要一直启用它?禁用它就行了。对于每个服务器控件,将En

我有一个web表单,希望将其“获取”到另一个页面。。 无论如何,是否可以在不发布ViewState和其他我不想要的内容的情况下提交它


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

如果您没有使用viewstate,为什么要保持启用状态?禁用它就行了。对于每个服务器控件,将EnableViewState设置为False,这样您就不必担心了。如果您需要viewstate,它将一直是帖子的一部分。

如果您没有使用viewstate,为什么要一直启用它?禁用它就行了。对于每个服务器控件,将EnableViewState设置为False,这样您就不必担心了。如果您需要viewstate,它将一直是文章的一部分。

您在这里有几个选项:

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

但是,如果您不想使用ViewState,也可以完全禁用它


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

这里有几个选项:

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

但是,如果您不想使用ViewState,也可以完全禁用它


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

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

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


您可以向搜索按钮添加事件处理程序,并执行类似的操作

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


有不同的方法可以持久化viewstate

过去,我不得不使用ApplicationState/Session在服务器上持久化viewstate,我不记得有一个沉重的AJAX页面支持更快的更新。效果很好

请参阅Page.LoadPageStateFromPersistenceMedium和Page.SavePageStateToPersistenceMedium


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

有不同的方法来保持viewstate

过去,我不得不使用ApplicationState/Session在服务器上持久化viewstate,我不记得有一个沉重的AJAX页面支持更快的更新。效果很好

请参阅Page.LoadPageStateFromPersistenceMedium和Page.SavePageStateToPersistenceMedium


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

抱歉,我不清楚这个问题。是否要导航到其他ASPX文件,或者希望web表单的值由其他ASPX文件处理?我有一个页面上有许多搜索选项,这将在新页面中加载搜索-因为搜索结果页面与搜索页面不同。我想使用get发布,以便可以将“搜索”添加到书签中。。但是,如果我将表单设置为get,那么viewstate也会被发布-所有字段都会被发布,无论它们是否已被选中/是否添加了数据。我真的只想将选中的get字段/其中包含数据的get字段发布到搜索结果页。。不知道是否有一种方法可以半自动完成。不太清楚为什么您不想发布ViewState,因为它将存储表单中的数据。如果您的帖子出现问题,您返回表单,这意味着您的所有数据都将丢失。或者我应该在搜索按钮中添加一个事件,然后自己从表单中获取数据,然后重定向到生成QS的结果页面。主页上是否有其他需要使用ViewState控件和回发等功能?对不起,我不清楚这个问题。是否要导航到其他ASPX文件,或者希望web表单的值由其他ASPX文件处理?我有一个页面上有许多搜索选项,这将在新页面中加载搜索-因为搜索结果页面与搜索页面不同。我想使用get发布,以便可以将“搜索”添加到书签中。。但是,如果我将表单设置为get,那么viewstate也会被发布-所有字段都会被发布,无论它们是否已被选中/是否添加了数据。我真的只想将选中的get字段/其中包含数据的get字段发布到搜索结果页。。不知道是否有一种方法可以半自动完成。不太清楚为什么您不想发布ViewState,因为它将存储表单中的数据。如果您的帖子出现问题,您返回表单,这意味着您的所有数据都将丢失。或者我应该在搜索按钮中添加一个事件,然后自己从表单中获取数据,然后重定向到生成QS的结果页面。主页上还有其他功能吗
t需要使用带有回发等的ViewState控件?为什么不在页面级别禁用ViewState呢?您可以在Page指令或PageInit事件上执行此操作。是的,这将是一种更好的方法。谢谢@carlos。为什么不在页面级别禁用ViewState呢?您可以在Page指令或PageInit事件上执行此操作。是的,这将是一种更好的方法。谢谢@carlos.hi谢谢是的这是我最初的想法。。只是感觉有点像有一种方法可以自动处理。。正如在另一个答案中提到的,jQueryGet可能是一个不错的选择,因为它可以避免访问server@Carlos,这将需要向服务器进行2次传输/调用,这将导致开销。不在乎它是否使用viewstate,只是不希望它出现在QS中,或者eventvalidation和其他关联的cr*p只是以某种方式选择的字段。@Filip我知道。这个问题没有提到任何关于往返服务器的问题。@Carlos,你为什么要这样做?这是个糟糕的设计。嗨,谢谢。是的,这是我最初的想法。。只是感觉有点像有一种方法可以自动处理。。正如在另一个答案中提到的,jQueryGet可能是一个不错的选择,因为它可以避免访问server@Carlos,这将需要向服务器进行2次传输/调用,这将导致开销。不在乎它是否使用viewstate,只是不希望它出现在QS中,或者eventvalidation和其他关联的cr*p只是以某种方式选择的字段。@Filip我知道。这个问题没有提到任何关于往返服务器的问题。@Carlos,你为什么要这样做?这是个糟糕的设计。