MVC4根据屏幕分辨率渲染Html.Partial

时间:2015-08-25 21:01:10

标签: asp.net-mvc partial-views

我有一个View,我想渲染一个特定的部分取决于窗口的大小。

View看起来:

 @using (Html.BeginForm("Index", "search", FormMethod.Get))
 {
         @Html.Partial("_Search")  

         <div class="searchmob" style="display: none;">
                 <h1>mobile</h1>
                 @Html.Partial("_SearchComponentMobile")  
         </div>
 }

默认情况下,div搜索引擎是不可见的,当屏幕变小时,div会出现(它有效)

这两个部分的问题都包含具有相同名称的textbox @ Html.TextBox,所以当从_SearchComponentMobile提交时,它会发送_Search的文本框值。

是否可以在需要时呈现特定部分。

我在我的一个视图中使用了下面的代码但是在上面的饱和度中它与css有关,希望可以实现类似的东西:

@{
   var act = ViewContext.RouteData.Values["action"].ToString().ToUpper();
}

@if (@act == "INDEX")
{
        //render a partial view otherwise it doesn't 
}

我正在使用bootstrap也许这也可以帮助我?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用MVC内置的'text2 foobar baz' ? 基本上,如果请求来自移动平台,视图引擎将查找视图的“覆盖”。

所以你的主要观点如下:

DisplayModeProviders

然后将您的@using (Html.BeginForm("Index", "search", FormMethod.Get)) { @Html.Partial("_Search") } 重命名为_SearchComponentMobile.cshtml,让MVC处理剩下的事情(请注意,如果它具有与之关联的样式,您需要将_Search.mobile.cshtml移动到部分中)

如果您需要,请在此处获取更多信息:

修改

否则在移动布局中重复表单....

<div class="searchmob">