2014-01-30 61 views
0

我想获得列表结果IENumerable类型ViewBag之前已经包含一个列表。如何在IENumerable类型viewbag MVC中返回json列表结果?

我在回国用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(); 

} 

Returing列表 -

@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

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

在标签名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事件可以有多个标签可用。

感谢您的任何帮助。

+0

成功在您的下拉菜单的容器提出了新的标记和过去它 – Grundy

+0

你需要搞糟与jQuery在这里,否则我建议返回局部视图,包含过滤标签,并粘贴HTML字符串容器 –

回答

0

你的意思是这样的你的成功处理程序中:

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

干杯。