从ASP.NET MVC网站的代码包中读取CSS内容

从ASP.NET MVC网站的代码包中读取CSS内容,css,asp.net,bundle,resourcebundle,server.mappath,Css,Asp.net,Bundle,Resourcebundle,Server.mappath,我有一个网站,使用引导和引导主题。我的网站还向网站用户发送通知电子邮件,当他们触发某些行为时 我希望发送的通知电子邮件的主体是格式良好的HTML内容,具有与主网站相同的外观和感觉 我一直被教导编写枯燥的代码,并使事情尽可能可维护,因此我希望在电子邮件中包含我的网站用作嵌入文件的引导CSS,并具有CSS的HTML正文引用,这样,如果我决定更改网站的主题,它会自动重新设置通知电子邮件的样式 我正在使用System.Net.Mail.SmtpClient发送电子邮件,并使用AlternateView添

我有一个网站,使用引导和引导主题。我的网站还向网站用户发送通知电子邮件,当他们触发某些行为时

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

我一直被教导编写枯燥的代码,并使事情尽可能可维护,因此我希望在电子邮件中包含我的网站用作嵌入文件的引导CSS,并具有CSS的HTML正文引用,这样,如果我决定更改网站的主题,它会自动重新设置通知电子邮件的样式

我正在使用
System.Net.Mail.SmtpClient
发送电子邮件,并使用AlternateView添加内容。我不想在离线查看电子邮件时包含对我网站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在电子邮件中不起作用,而且它太大了,所以我将简单地在HTML中嵌入基本的CSS。

您可以向自己的网站请求该URL。但无论如何,这可能是个坏主意。电子邮件中的CSS与网页上的CSS非常不同,因为并非所有电子邮件客户端程序都支持所有CSS。结果可能是一封无法阅读的电子邮件。@mason:啊,是的。。。没想到。。。虽然不理想,但在我找到更好的方法之前,这可能是一个解决办法。谢谢