POSTING JSON a la URL a través de WebClient en C #

Tengo un código JavaScript que necesito convertir a C #. Mi código JavaScript POSTE algunos JSON a un servicio web que se ha creado. Este código JavaScript funciona bien y se parece a lo siguiente:

var vm = { k: "1", a: "2", c: "3", v: "4" };
$.ajax({
  url: "http://www.mysite.com/1.0/service/action",
  type: "POST",
  data: JSON.stringify(vm),
  contentType: "application/json;charset=utf-8",
  success: action_Succeeded,
  error: action_Failed
});

function action_Succeeded(r) {
  console.log(r);
}

function log_Failed(r1, r2, r3) {
  alert("fail");
}

Estoy tratando de averiguar cómo convertir esto a C #. Mi aplicación está utilizando .NET 2.0. Por lo que puedo decir, necesito hacer algo como lo siguiente:

using (WebClient client = new WebClient())
{
  string json = "?";
  client.UploadString("http://www.mysite.com/1.0/service/action", json);
}

Estoy un poco atascado en este punto. No estoy seguro de quejson debe parecerse a No estoy seguro de si necesito configurar el tipo de contenido. Si lo hago, no estoy seguro de cómo hacerlo. yo también viUploadData. Entonces, no estoy seguro si estoy usando el método correcto. En cierto sentido, la serialización de mis datos es mi problema.

¿Puede alguien decirme lo que me estoy perdiendo aquí?

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta