将数据从winforms发布到mvc控制器会传递null值

问题描述 投票:1回答:1

我试图将winforms(这是一个ClickOnce应用程序)的字符串值发布到MVC控制器操作方法。能够成功调用POST方法,但在检查参数值时它显示为空值。

以下是我的winform代码:

private void btnEncrypt_Click(object sender, EventArgs e)
    {
        var dataBytes = System.Text.Encoding.UTF8.GetBytes(txtFill.Text);
        var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://abc.azurewebsites.net/Home/Contact");            
        httpWebRequest.ContentType = "application/x-www-form-urlencoded";
        httpWebRequest.ContentLength = dataBytes.Length;
        httpWebRequest.Method = "POST";

        Stream dataStream = httpWebRequest.GetRequestStream();

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

        WebResponse response = httpWebRequest.GetResponse();

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

        dataStream = response.GetResponseStream();

        StreamReader streamReader = new StreamReader(dataStream);

        string responseFromServer = streamReader.ReadToEnd();
        // Display the content.  
        lblShow.Text += " " + responseFromServer;

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

以下是我的控制器操作方法的屏幕截图,其中断点被命中,但参数post值为null。

enter image description here

有关出错的方法/建议或如何将字符串或JSON值从winforms传递给我的mcv控制器操作。

提前致谢!!!..

winforms http-post httpwebrequest
1个回答
0
投票

试试这个 :

private void btnEncrypt_Click(object sender, EventArgs e)
    {
        var dataBytes = System.Text.Encoding.UTF8.GetBytes("data="+txtFill.Text);
        var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://abc.azurewebsites.net/Home/Contact");            
        httpWebRequest.ContentType = "application/x-www-form-urlencoded";
        httpWebRequest.ContentLength = dataBytes.Length;
        httpWebRequest.Method = "POST";

        Stream dataStream = httpWebRequest.GetRequestStream();

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

        WebResponse response = httpWebRequest.GetResponse();

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

        dataStream = response.GetResponseStream();

        StreamReader streamReader = new StreamReader(dataStream);

        string responseFromServer = streamReader.ReadToEnd();
        // Display the content.  
        lblShow.Text += " " + responseFromServer;

        streamReader.Close();
        response.Close();                                  
    }
© www.soinside.com 2019 - 2024. All rights reserved.