html - 如何在 MVC 5 中为不同的设备显示不同的数据

标签 html css asp.net-mvc-5

令人惊讶的是,经过多次搜索我找不到解决方案或类似问题,这可能是一个脑放屁的时刻。我想使用媒体查询在不同设备上以不同方式显示数据。

所以在大型设备上我想以表格形式显示,在移动设备上显示自定义“ ListView ”.

我可以通过在模型中创建 2 个循环来实现这一点:

<div class="row display-large">
    <!--TABLE HERE-->
    @foreach (var emp in Model)
    <!--EACH ROW-->
</div>

<div class="row display-small">
    @foreach (var emp in Model)
    <!--EACH CUSTOM LIST ITEM-->
</div>

然后使用媒体查询,我可以显示/隐藏相关的(显示小/大)。 但是我无法忍受自己这样做,它会增加页面大小并且是非常糟糕的做法,所以我的问题是如何在不复制 HTML 的情况下实现这一目标。

提前致谢。

最佳答案

也许你可以做这样的事情:

在服务器端某处创建全局变量,如

public static class GlobalVars
{
     public static bool IsLarge {get; set;}
}

像这样添加到 Controller

[HttpPost]
public ActionResult SetDisplayMode(bool isLarge)
{
    GlobalVars.IsLarge = isLarge;
    return new HttpStatusCodeResult(System.Net.HttpStatusCode.OK);
}

在你的 View 中添加:

<script>
 var data = $( window ).width() > 720)? true : false;
 $.post("@Url.Action("SetDisplayMode", "$ControllerNameHere")", { isLarge: data});     
</script>

<div class="row display-small">
    @foreach (var emp in Model)
    if(Web.GlobalVars.IsLarge) { <!--EACH ROW-->} else { <!--EACH CUSTOM LIST ITEM--> }
</div>

将 $ControllerNameHere 更改为您的 Controller 名称

关于html - 如何在 MVC 5 中为不同的设备显示不同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31048011/

相关文章:

php - 术语突出显示算法 (HTML)

javascript - 如何判断图片是否超链接?

javascript - 通过滚动和调整滚动大小在关于部分中使用英雄图像

asp.net - 在 ASP.NET MVC5 中执行长时间运行任务的最佳方法

jquery - Bootstrap Scroll-spy 和 navbar-collapse 不起作用

html - 手机上的 BG 图片未调整大小

javascript - style.opacity 在 ajax 函数中不起作用

c# - <$G+$> 出现在 ASP.NET MVC5 Helper 中的奇怪字符

jquery - ASP.NET MVC 5 中的 Ajax(部分 View )不起作用 - 始终仅单独打开部分 View

html - 使文本在自动宽度 div 内换行