Как передать строковое значение из WidowsForm в ASP.NET MVC Controller - PullRequest
0 голосов
/ 02 октября 2019

Я видел пару похожих сообщений, но ни одна из них не решила мою проблему, поэтому я пишу снова.

Я пытаюсь передать свои данные WindowsForm на контроллер asp.net MVC.

Но на контроллере я получаю нулевое значение. Как я могу передать значение формы Windows (текстовое значение) моему контроллеру? Пожалуйста, помогите.

Вот мои коды:

Код формы Windows:

private void send_button_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(textBox1.Text))
        {
            var dataBytes = System.Text.Encoding.UTF8.GetBytes(textBox1.Text);

            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:61174/Home/DataFromWinForm");
            httpWebRequest.ContentType = "application/x-www-form-urlencoded";
            httpWebRequest.ContentLength = dataBytes.Length;
            httpWebRequest.Method = "POST";

            using (var dataStream = httpWebRequest.GetRequestStream())
            {
                dataStream.Write(dataBytes, 0, dataBytes.Length);
            }


            HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();
            if (response.StatusCode == HttpStatusCode.OK)
            { starts_label.Text += "Posted";
                textBox1.Text = null;
            }

        }
    }

А вот мой контроллер: методом Start я открываю свое приложение windowsform и пытаюсь передать текст формы окна методу DataFromWinForm моего контроллера

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
    public IActionResult Start()
    {
        var appLocation = @"C:\Users\RFIDReader\bin\Debug\RFIDReader.exe";
        Process test = new Process();
        test.StartInfo.FileName = appLocation;
        test.Start();

        return View("Index");
    }
    [HttpPost]
    public IActionResult DataFromWinForm(string receivedData)
    {
        //My code goes here
        return View();
    }}

Но когда моя точка останова достигает моего контроллера, я получаю нулевое значение enter image description here

1 Ответ

1 голос
/ 02 октября 2019

Измените

 var dataBytes = System.Text.Encoding.UTF8.GetBytes(textBox1.Text);

на

 var postData = HttpUtility.UrlEncode("receivedData") + "=" + HttpUtility.UrlEncode(textBox1.Text);
 var dataBytes = System.Text.Encoding.UTF8.GetBytes(postData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...