【问题标题】:If page = home display this div MVC如果 page = home 显示这个 div MVC
【发布时间】:2014-06-03 09:47:26
【问题描述】:

我对 MVC 很陌生,所以我不太清楚如何只在主页上显示 div。基本上它是一个预加载器,我不想在主页以外的任何其他页面上显示。

我通常在 .NET 中这样做:

      <%if(Request.Url.ToString().ToLower().Contains("default")) {%>
        <div id="PageLoader">
            <div class="PageLoaderInner">
                <div class="LoaderLogo"><img src="/Content/Images/Masterpage/Logo.png" width="127" height="125"/></div>
                <div class="LoaderIcon"><span class="spinner"></span><span></span></div>
            </div>
        </div>
      <%}%>

这也是我正在制作的一个非常基本的网站,所以我从 URL 中删除了控制器名称,在我的例子中是“Pages”,因此 URL 显示 /Contact 而不是 /Pages/Contact

除了查看 URL 之外,还有其他显示 div 的方法吗?如果有人能告诉我如何在 Pages 控制器中以及在 HTML 中的“内联”中执行此操作,那就太棒了。

此时所有的 Pages 控制器显示是这样的:

namespace WebsiteName.Web.Controllers
{
    public class PagesController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Contact()
        {
            return View();
        }
    }
}

谢谢大家。

【问题讨论】:

  • 也许只是将div 放在Index 视图中而不是其他视图中?
  • 答案在上面。只需将 div 元素放在您的 Index 视图中即可。
  • 我想过,但 div 需要位于页面顶部的开头 下方。如果这是唯一的方法,我可以添加一个 ContentPlaceHolder。谢谢。
  • 然后在主布局中使用 @RenderSection("SectionName") 并在您的 Index 视图中使用此代码:@section SectionName { // code here } - 这应该可以工作。

标签: c# asp.net-mvc asp.net-mvc-4


【解决方案1】:

你可以试试这个: 编辑:不检查 URL

@{if(ViewBag.isHome)
   {
        <div id="PageLoader">
            <div class="PageLoaderInner">
                <div class="LoaderLogo"><img src="/Content/Images/Masterpage/Logo.png" width="127" height="125"/></div>
                <div class="LoaderIcon"><span class="spinner"></span><span></span></div>
            </div>
        </div>
      }
}

///服务器

namespace WebsiteName.Web.Controllers
 {
    public class PagesController : Controller
    {
         public ActionResult Index()
         {
             ViewBag.isHome = true;
             return View();
         }

         public ActionResult Contact()
         {
             return View();
         }
    }
 }

【讨论】:

  • 另一个有效的解决方案,但我认为这不是我们想要的......:)
  • 感谢这个聪明的解决方案。好作品
【解决方案2】:

只是用代码解释一下Rosko在评论中所说的内容

布局页面

<div id="body">
        @RenderSection("SectionName", required: false)
        <section class="content-wrapper main-content clear-fix">
            @RenderBody()
        </section>
    </div>

索引页面

@section SectionName{
// your code
}

Section SectionName 将在索引正文之前呈现,同样您也可以重新定义该部分的位置。

【讨论】:

    猜你喜欢
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 2021-12-21
    • 2013-06-20
    • 2010-11-01
    • 2023-03-14
    相关资源
    最近更新 更多