gpt4 book ai didi

c# - 在 ASP .NET MVC 5 中动态更改布局或样式表

转载 作者:太空宇宙 更新时间:2023-11-03 19:54:18 25 4
gpt4 key购买 nike

我在 ASP .NET MVC 5 中开发 Web 应用程序,我需要有一些按钮可以改变布局中的样式(另一个 .css 文件)。我试过 jQuery + COOKIES 解决方案 - 它有效,但在页面加载时仍有其他样式可见。

在 MVC 5 中是否有任何其他(更好的)解决方案来解决这个问题?不需要 COOKIES(当用户返回默认样式时可以加载)。单击某个按钮后,所有页面将使用第二种样式,再单击一次默认样式将再次使用。也许通过使用一些路由属性或类似的东西。

非常感谢您的每一个建议!

最佳答案

这只是一种方式 - 取决于变化的范围(或不):利用 sections

您通常会在样板文件中显示 @section这是你想从View“注入(inject)”的任何东西的“占位符” .

示例:

  • Views/Shared/_Layout.cshtml定义一个可选的 Section<head />

    <title>@ViewBag.Title</title> 

    <!--this could be your "base" style-->
    @Styles.Render("~/Content/css")

    <!--this could be your "override" style-->
    @RenderSection("OverrideStyles", false)
  • View 中或 _ViewStart (因此您可以在一个地方设置多个 View 的样式)根据需要使用它

    @section OverrideStyles
    {
    @if (DateTime.Now.Second % 2 == 0) //Some expression or some value from controller....
    {
    <style>
    div.jumbotron h1 {
    color: #ff0000;
    }
    </style>
    }
    else
    {
    <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/stackoverflow/all.css?v=693004a3f56e">
    }

    }
    <div class="jumbotron">
    <h1>ASP.NET</h1>
    <p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.</p>
    <p><a href="http://asp.net" class="btn btn-primary btn-lg">Learn more &raquo;</a></p>
    </div>

您可以从那里扩展 - 甚至动态设置整个 _Layout如有必要..

例如_ViewStart.cshtml

@{
if (DateTime.Now.Second % 2 == 0)
{
Layout = "~/Views/Shared/_Layout.cshtml";
}
else
{
Layout = "~/Views/Shared/_Layout-bar.cshtml";
}

}

嗯...

关于c# - 在 ASP .NET MVC 5 中动态更改布局或样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35485810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com