如何在IENumerable类型的viewbag MVC中返回json列表结果?

时间:2014-01-30 12:35:05

标签: c# jquery asp.net-mvc json

我正在尝试获取之前已包含列表的IENumerable类型ViewBag中的列表结果。

我正在使用运行中的viewbag返回列表 -

[HttpGet]
public ActionResult RangerCard() {
    var taglist = (from u in db.TagTables
                   where u.TagName.Contains(tag)
                   select u).ToList();

    ViewBag.TagName = taglist;
    return View();

}

退出清单 -

   @if (ViewBag.TagName != null) {
       foreach (var item in ViewBag.TagName) {
           <p class="tag-division">
               <a id="@item" class="tag-in-dropdown" href="#"># @item</a>
           </p>
       }
  }

看起来像 -

enter image description here

此操作会返回下拉菜单中的所有标记。现在,我想在用户在此文本框中写入时立即过滤此结果。

如果是tagName RipEnglish -

我根据本文使用ajax查询过滤标签 -

#cardhascode是输入文本框的ID。

   $('#cardhashcode').keyup(function () {
       var tag = $('#cardhashcode').val();
       $.ajax({
           url: '/Upload/JsonTagList/?tag=' + tag,
           type: 'Post',
           success: function (data) {

           }
       });
  });

然后行动 -

[HttpPost]
public ActionResult JsonTagList(string tag) {
    var taglist = (from u in db.TagTables
                   where u.TagName.Contains(tag)
                   select u).ToList();
    return Json(taglist);
}

以上操作过滤器标签,但我无法处理输出结果。如何在此下拉菜单中将此过滤器结果显示为过滤结果。

注意 -

此结果以列表类型显示。因此,每个keyup事件都可以有多个标记。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在成功处理程序中,您的意思是这样吗:

if(data){
    data.forEach(function(item){
        $('#yourtagcontainer').append('<p class="tag-division"><a id="'+item+'" class="tag-in-dropdown" href="#"># '+item+'</a></p>');
    });
}

干杯。