gpt4 book ai didi

css - 仅仅为了那个 View 而切换CSS?

转载 作者:行者123 更新时间:2023-12-02 20:27:47 25 4
gpt4 key购买 nike

我想根据用户选择将不同的 css 样式应用于 View 。最初, View 应使用 _ViewStart.cshtml_Layout.cshtml。当用户单击预览按钮时,我希望 View 使用 _Layout2.cshtml 并将 css 切换为仅应用于该 View 。

但似乎这适用于所有 View 。有什么提示吗?我犯过什么错误吗?我的代码如下:

创建.cshmtl:

@model SurveyTool.Models.SampleQuestionViewModel

@{
ViewBag.Title = "DummyQuestionList";
Layout = "~/Views/Shared/_Layout2.cshtml";

if (Model.Survey_Template == "Style1")
{
<link href="Site.css" rel="stylesheet"
type="text/css" />
}
else if (Model.Survey_Template == "Style2")
{
<link href="Type1.css" rel="stylesheet"
type="text/css" />
}
else if (Model.Survey_Template == "Style3")
{
<link href="Type2.css" rel="stylesheet"
type="text/css" />
}
}

<h2>@Model.Survey_Template DummyQuestionList</h2>
<br/>

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

<fieldset>
<legend>SampleQuestionViewModel</legend>

<div class="editor-label">
@Html.HiddenFor(model => model.Survey_Template)
</div>

<div class="editor-field">
@Html.EditorFor(model => model.Survey_Template)
@Html.ValidationMessageFor(model => model.Survey_Template)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Question1)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Question1)
@Html.ValidationMessageFor(model => model.Question1)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Question2)
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.Question2)
@Html.ValidationMessageFor(model => model.Question2)
</div>
</fieldset>
}

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

_Layout2.cshtml:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Infineon Survey Tool</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
@Styles.Render("~/Content/Site.css")
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")

</head>
<body id="@ViewBag.Title">

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


@RenderSection("scripts", required: false)
</body>
</html>

最佳答案

如果您对 CSS 进行了命名空间并向主体添加了一个类,那么您可能无需切换样式表即可执行此操作。然后,您可以在单击按钮时使用 JS 更改此类。

SASS 中的示例:

.stylesheet-1 {
.style-1 {

}
.style-2 {

}
}

.stylesheet-2 {
.style-1 {

}
.style-2 {

}

.style-3 {

}

}

关于css - 仅仅为了那个 View 而切换CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30702629/

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