MVCMailer + Razor + CSS的困境

时间:2011-03-31 01:42:54

标签: css asp.net-mvc-3 razor

马上,我不是程序员。这很奇怪,但问题是难的我要么找到答案(谷歌有人吗?)还是想出来(不,真的,这是谷歌)。简单的东西(我知道这是因为我知道)?我真的遇到了麻烦。

我正在使用MVCMailer + Razor。我得到它发送邮件(转储到c:/),一切都很棒。我花了一些时间来设置我的邮件(我仍在玩弄逻辑 - 可能是关于不同主题的未来问题),我休息一下来设计它。几个解释(以及几个小时后),我无法弄明白。

首先,我从MVC 2转换(使用工具升级,工作页面等)。我继续使用Helper类在我的_Layout.cshtml类中引入样式表:

1)<head> ... <link rel="stylesheet" type="text/css" href="<%= Url.Stylesheet("Default") %>" media="all" />...</head>

当我拉出* .cshtml生成的邮件时,没有样式。注意:我的Default.css只是导入我所有的其他.css文件(我将header / content / footer / etc分开)。但是,我尝试专门加载我用于邮件的.css文件(Mailer.css - 原创,我知道)。

其次,我在一些热门博客中尝试了以下内容:

2)&lt; head> ... <link rel="stylesheet" type="text/css" href="@Url.Content("../../Content/Default.css")" /> ... </head>

是的,我为那个助手做了@using Namespace。实际的电子邮件中没有样式。

最后,

3)我将<style>块直接放在* .cshtml文件中。

有效。

我很难过。是MVCMailer吗?我完全错过了什么吗?我的目标是不仅仅是一个文本邮件,没有什么花哨的(标题/内容/页脚 - 一些字体样式和背景颜色)。

3 个答案:

答案 0 :(得分:4)

这不是MvcMailer的问题。这是电子邮件客户端如何处理CSS文件的问题。

即使您的CSS文件链接正确,大多数电子邮件客户端也只会使用内联CSS。看看这个:http://www.webreference.com/programming/css_html/

答案 1 :(得分:0)

我会尝试使用:

 <link rel="stylesheet"
       type="text/css"
       href="@Url.Abs( Url.Content( "~/content/default.css" )" ) />

您希望使用代字号创建相对于站点根目录的路径。此外,网址必须是绝对的,而不是相对的。请参阅https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide

指南

答案 2 :(得分:0)

内联是要走的路。

我在HTML中已经取得了一些成功,但我不想全面依赖它。