0

クライアント WPF 側で実行しているコードは次のとおりです。

string path = @"C:\Users\Sergio\Desktop\test3.log";

// A List<DataObj>
var parsedData = LogParser.Parse(path); 

この複雑なオブジェクトを Web アプリケーション (MVC3) のアクション メソッドに送信し、それを使って何かをしたいと考えています。これは完全に別のプロジェクトであることに注意してください。

作成した ActionMethod は次のとおりです。

[HttpPost]
public class MicroOracleController : Controller
{
    public ActionResult UploadData(List<DataObj> matches)
    {
        //Do something here.

        return RedirectToAction("Index", "Home");
    }
}

クライアント側では、この ActionMethod を呼び出すにはどうすればよいですか?

私はもう試した:

private void Button_Click(object sender, RoutedEventArgs e)
{
    string path = @"C:\Users\Sergio\Desktop\test3.log";
    var parsedMatches = LogParser.Parse(path);

    // Create a request using a URL that can receive a post. 
    WebRequest request = WebRequest.Create("http://localhost:35082/MicroOracle/UploadData/");
    // Set the Method property of the request to POST.
    request.Method = "POST";
    // Create POST data and convert it to a byte array.
    byte[] byteArray = Encoding.UTF8.GetBytes(parsedMatches); //I can't do this with a complex object.
    // Set the ContentType property of the WebRequest.
    request.ContentType = "application/x-www-form-urlencoded";
    // Set the ContentLength property of the WebRequest.
    request.ContentLength = byteArray.Length;
    // Get the request stream.
    Stream dataStream = request.GetRequestStream();
    // Write the data to the request stream.
    dataStream.Write(byteArray, 0, byteArray.Length);
    // Close the Stream object.
    dataStream.Close();
    // Get the response.
    WebResponse response = request.GetResponse();
    // Display the status.
    Console.WriteLine(((HttpWebResponse)response).StatusDescription);
    // Get the stream containing content returned by the server.
    dataStream = response.GetResponseStream();
    // Open the stream using a StreamReader for easy access.
    StreamReader reader = new StreamReader(dataStream);
    // Read the content.
    string responseFromServer = reader.ReadToEnd();
    // Display the content.
    Console.WriteLine(responseFromServer);
    // Clean up the streams.
    reader.Close();
    dataStream.Close();
    response.Close();
}

しかしGetBytes、複雑なオブジェクトはできません。

4

0 に答える 0