gpt4 book ai didi

css - 在 ASP.NET MVC 网站的代码中从 bundle 中读取 CSS 内容

转载 作者:行者123 更新时间:2023-11-28 09:35:19 25 4
gpt4 key购买 nike

我有一个网站,它使用 Bootstrap 和 Bootstrap 主题。当网站用户触发某些操作时,我的网站还会向他们发送通知电子邮件。

我希望发送的通知电子邮件的正文是格式良好的 HTML 内容,具有与主网站相同的外观。

我一直被教导要编写 DRY 代码,并使事情尽可能易于维护,所以我想在电子邮件中包含我的网站用作嵌入式文件的相同引导 CSS,并让 HTML 正文引用CSS,因此如果我决定更改我网站的主题,它会自动重新设置我的通知电子邮件的样式。

我正在使用 System.Net.Mail.SmtpClient 发送电子邮件,并使用 AlternateViews 添加内容。我不想包含对我网站的 css 的实时引用,以防电子邮件被离线查看,所以我想嵌入 css。

我对如何将 CSS 文件读入字符串并将其附加到电子邮件感到困惑。在我的 BundleConfig 中,我有这个:

bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap-sandstone.css",
"~/Content/site.css"));

所以我尝试了:

var css = File.ReadAllText(HttpContext.Current.Server.MapPath("~/Content/css"));

但正如我所料,它抛出了一个 FileNotFound 异常。

我可以使用什么来让我传入 ~/Content/css 并弹出 css?

最佳答案

我找到了一种使用这段代码获取 CSS 内容的方法:

var cssBundle = BundleTable.Bundles.GetBundleFor("~/Content/css");
var css = cssBundle.GenerateBundleResponse(new BundleContext(new HttpContextWrapper(HttpContext.Current), BundleTable.Bundles, string.Empty)).Content;

但是,正如梅森预测的那样(在评论中)CSS 在电子邮件中不起作用,而且它太大了,所以我将简单地将基本 CSS 嵌入到 HTML 中。

关于css - 在 ASP.NET MVC 网站的代码中从 bundle 中读取 CSS 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29261775/

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