0

我知道这个问题已经回答了很多次,但我仍然在将值从 winform 发布到 aspx 页面时遇到问题。我总是得到一个空值。

以下是我的winform代码:

string formContent = "FormValue1=" + contact.Country;

        var dataBytes = System.Text.Encoding.UTF8.GetBytes(formContent);
        HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:52262/Default.aspx");
        httpWebRequest.ContentType = "application/x-www-form-urlencoded";           

        httpWebRequest.ContentLength = dataBytes.Length;

        httpWebRequest.Method = WebRequestMethods.Http.Post;

        Stream dataStream = httpWebRequest.GetRequestStream();            

        dataStream.Write(dataBytes, 0, dataBytes.Length);            
        dataStream.Close();
        //dataStream.Flush();

        HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();

        //lblShow.Text = ((HttpWebResponse)response).StatusDescription;

        Stream responseStream = response.GetResponseStream();

        StreamReader streamReader = new StreamReader(responseStream);

        string responseFromServer = streamReader.ReadToEnd();          

        streamReader.Close();                        
        response.Close();   

以下是我的 Default.aspx 页面代码:

protected void Page_Load(object sender, EventArgs e)
    {
        ClaimsPrincipal claimsPrincipal = Page.User as ClaimsPrincipal;

        if (claimsPrincipal != null)
        {
            this.ClaimsGridView.DataSource = claimsPrincipal.Claims;
            this.ClaimsGridView.DataBind();
        }

        Session["Name"] = Request.Form["FormValue1"];
    }

请求表单值始终具有空值。相同的代码在 MVC 中有效,但在 webforms 中总是失败。

任何帮助或指导都会很棒。

提前致谢!!!..

4

1 回答 1

1

如果您在网站上启用了 FriendlyURLS,它将干扰 Request.Form 集合:

结帐:https ://www.mikesdotnetting.com/article/293/request-form-is-empty-when-posting-to-aspx-page

以防上述 URL 停止工作:

Amend the configuration for Friendly URLs You will find this in the RouteConfig.cs file in the App_Start folder. The configuration to change is the AutoRedirect mode which by default is set to RedirectMode.Permanent. Comment this setting out:

public static void RegisterRoutes(RouteCollection routes)
{
    var settings = new FriendlyUrlSettings();
    //settings.AutoRedirectMode = RedirectMode.Permanent;
    routes.EnableFriendlyUrls(settings);
}

于 2019-07-15T09:19:13.497 回答