POSTING JSON para URL via WebClient em c #

Eu tenho algum código JavaScript que eu preciso converter em c #. Meu código JavaScript envia alguns JSON para um serviço da Web que foi criado. Este código JavaScript funciona bem e se parece com o seguinte:

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");
}

Eu estou tentando descobrir como converter isso em c #. Meu aplicativo está usando o .NET 2.0. Pelo que posso dizer, preciso fazer algo como o seguinte:

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

Estou um pouco preso neste momento. Eu não tenho certeza do quejson deve parecer. Não tenho certeza se preciso definir o tipo de conteúdo. Se eu fizer, não sei como fazer isso. Eu também viUploadData. Então, não tenho certeza se estou usando o método certo. De certo modo, a serialização dos meus dados é um problema meu.

Alguém pode me dizer o que eu estou sentindo falta aqui?

Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion