控制器未接收数据?

i'm trying to send data from a view to a controller using POST but i doesn't seems to work.

Here's my code (javascript function) :

function showHint(str) {
if (str.length == 0) {
    document.getElementById("txtHint").innerHTML = "";
    return;
} else {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
        }
    };
    var titre = str;
    xmlhttp.open("POST", "CheckReturn", true);
    //xmlhttp.send(titre);
    xmlhttp.send({"titre":titre});
}

}

the html triggering it :

    <div id="check-name" class="form-row">
    <input id="name" type="text" name="name" placeholder="Titre de l'événement" onkeyup="showHint(this.value)">
    <span id="txtHint"></span>
</div>

and finally, the controller SUPPOSED to get it :

        [HttpPost]
    public ActionResult CheckReturn(string titre)
    {
        var contexte = new intranetEntities();
        var ajax = contexte.evenementiel.SqlQuery("Somequery" + titre);
        ViewBag.ajax = ajax;

        return PartialView();
    }

i checked bit firebug, the data is sent, but with visual studio's debugger, i see that "titre" always stay null.

What can i do ?

I've run into something similar in the past with asp.net but I never really tried to understand what's happening. What fixed it for me was the following:

make a new class somewhere in your back-end (anywhere, doesn't matter for now)

class TitreWrapper {
 public string titre {get; set;}
}

then in your controller

[HttpPost]
public ActionResult CheckReturn(TitreWrapper titreWrap)
{
  string titre = titreWrap.titre;
}

this should work according to my previous experience


the top answer is wrong (but right in other circumstances I think)

for this problem the following worked:

xmlhttp.open("POST", "/CheckReturn?titre=" + titre, true);

and then just

xmlhttp.send(); 

OR

xmlhttp.open("POST", "CheckReturn", true);

then

xmlhttp.send("titre=" + titre);