首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Json转换为HTML MVC

将Json转换为HTML MVC
EN

Stack Overflow用户
提问于 2014-07-28 20:38:24
回答 1查看 434关注 0票数 0

大家好,我正在过滤SelectList中的数据,当点击它时,数据在选择列表中从数据库加载。所以当我点击时,我得到了json格式,我的问题是正确地转换成html。这是我的控制器,它对应于过滤器

代码语言:javascript
运行
复制
 public JsonResult Filter(string category)
    {
        var model = from e in db.Errors
                    orderby e.Category
                    where e.Category == category || category == null || category == ""
                    select e;
        return Json(model, "true",JsonRequestBehavior.AllowGet);
    }

和视图

代码语言:javascript
运行
复制
  <div class="row">
            <b class="text-success">Categories</b>
                @Html.DropDownList("category", new SelectList(ViewBag.Category),new{@class="dropSearch"})

            <b class="text-success">Titles:</b>
            <select>
                <option value="value">Select title</option>
            </select>
            <b class="text-success">Severities:</b>
            <select>
                <option value="value">Select severity</option>
            </select>

            <div class="inner-addon left-addon">
                <i class="glyphicon glyphicon-search"></i>
                <input id="styleInput" type="text" class="form-control" placeholder="Search" />
            </div>

        </div>
    </div>
    <div id="upEl" class="jumbotron">
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>Timestamp</th>
                    <th>Category</th>
                    <th>Title</th>
                    <th>Message</th>
                    <th>Severity</th>
                </tr>
            </thead>
            <tfoot>
                @foreach (var item in Model)
                {
                    <tr>
                        <td>@Html.DisplayFor(er=>item.Timestamp)</td>
                        <td>@Html.DisplayFor(er => item.Category)</td>
                        <td>@Html.DisplayFor(er => item.Title)</td>
                        <td>@Html.DisplayFor(er => item.Message)</td>
                        <td>@Html.DisplayFor(er => item.Severity)</td>
                    </tr>
                }

            </tfoot>
        </table>
    </div>

这是我的javascript

代码语言:javascript
运行
复制
 $('.dropSearch').change(function() {

    var url = '@Url.Action("Filter","Errors")';
    $.get(url, { category: $(this).val() }, function(result) {
        $('.table').html(result);
    }); 
});
EN

回答 1

Stack Overflow用户

发布于 2014-07-28 20:46:23

为了做你想做的事情,有几个选项

1)按照@Satpal的建议创建一个局部视图,并让它返回表的超文本标记语言,然后以您所做的方式用jQuery获取它(而不是返回JSON)

2)返回过滤后的JSON (就像您已经做的那样),并在成功函数中遍历它,以便动态地构建替换html,并将其放入表中

选项1)将传输更多的数据,但更容易编写(因为您已经使用MVC视图重新构建表)选项2)只通过网络发送JSON,因此将更轻,但将需要您动态构建HTML。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24995430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档