JQuery Auto完成和webapi 2

时间:2015-04-23 09:50:01

标签: javascript jquery json web asp.net-web-api

我正在使用WebApi尝试在我的网站上获取json arry到我的自动完成jquery,

我很简单需要将List转换为自动完成对象,以便向客户显示模板列表,

这是我的Javascript代码 -

<script>
    var availableTags;
    $.get(
  "http://localhost:59040/api/Email/GetTemplates",
  { 'FirstName': "what she say", '': "sayhey" }, // put your parameters here
  function (responseText) {
     availableTags = responseText;
     console.log(availableTags);
     DoIt();

  }
  );
  function DoIt(){

$(function () {
        var ava = availableTags;
        if (availableTags){
        console.log("Its done")
        $("#TemplatesAuto").autocomplete({
            source: availableTags
      });
      }
      else {
      console.log("Not");
      }
    });
};


</script>

我的webapi控制器代码:

  //Get templates
        [HttpGet]//omUrl/{url?}
        [Route(@"~/api/Email/GetTemplates")]
        [EnableCors(origins: "*", headers: "*", methods: "*")]
        public string GetTemplates()
        {
            List<string> Names = new List<string>();
            Names.Add("Check");
            Names.Add("Check");
             JavaScriptSerializer serializer = new JavaScriptSerializer();
             return serializer.Serialize(Names);   
        }

似乎正常,有效。但是,当我尝试在自动完成输入中写入内容时,我收到此错误:

GET http://localhost:54662/Check/[%22Check%22,%22Check%22]?term=c 404 (Not Found)

我在这里疯了,在来这里之前找了几个小时的答案,

请帮忙。

非常感谢,美好的一天:)

1 个答案:

答案 0 :(得分:0)

我找到了它!..

我花了一些时间来重申我没有把它作为我的javascript的对象,

我需要做的就是做

List<string> Names = new List<string>();
Names.Add("Check");
Names.Add("Check");

JavaScriptSerializer serializer = new JavaScriptSerializer();

string g = serializer.Serialize(Names);

var response = this.Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StringContent(g, Encoding.UTF8, "application/json");
return response;

就像那样,它有效,

非常感谢您尝试,美好的一天。