将参数从jquery post方法传递给控制器

Uma*_*air -1 c# ajax jquery json asp.net-mvc-4

我想将"name"作为参数发送到控制器,但控制器没有接收参数

$(document).ready(function () {
  $("#btn1").click(function () {
    var name = $("#search").val();
    //name = "ali";
    alert(name);
    $.post("/Status/searchByName", { typeId: name }, function (data) {
      document.write(data);
      $.each(data, function (key, value) {
        //document.write(data,value);
        // Here you can iterate data one by one and process it.
      });
    }, "text");           
  });
});
Run Code Online (Sandbox Code Playgroud)

这是行动方法

[HttpPost] 
public JsonResult searchByName(string name)
{           
  dbCRMEntities dbx = new dbCRMEntities();         
  var names = dbx.CONTACTS.Where(chk => name == chk.NAME);
  return this.Json(names, JsonRequestBehavior.AllowGet);                
}
Run Code Online (Sandbox Code Playgroud)

此操作方法仅接收null

小智 7

你传递{ typeId: name }但你的方法需要一个名为的参数name

将参数更改为

public JsonResult searchByName(string typeId) 
Run Code Online (Sandbox Code Playgroud)

或者将脚本调整为

$.post("/Status/searchByName", { name: name }, function (data) {
Run Code Online (Sandbox Code Playgroud)