我正在尝试将列表导出为CSV文件.我完成了所有工作,我想写入文件到响应流.这没有任何作用.
这是我的代码:
从页面调用方法.
$('#btn_export').click(function () {
$.post('NewsLetter/Export');
});
Run Code Online (Sandbox Code Playgroud)
控制器中的代码如下:
[HttpPost]
public void Export()
{
try
{
var filter = Session[FilterSessionKey] != null ? Session[FilterSessionKey] as SubscriberFilter : new SubscriberFilter();
var predicate = _subscriberService.BuildPredicate(filter);
var compiledPredicate = predicate.Compile();
var filterRecords = _subscriberService.GetSubscribersInGroup().Where(x => !x.IsDeleted).AsEnumerable().Where(compiledPredicate).GroupBy(s => s.Subscriber.EmailAddress).OrderBy(x => x.Key);
ExportAsCSV(filterRecords);
}
catch (Exception exception)
{
Logger.WriteLog(LogLevel.Error, exception);
}
}
private void ExportAsCSV(IEnumerable<IGrouping<String, SubscriberInGroup>> filterRecords)
{
var sw = new StringWriter();
//write the header
sw.WriteLine(String.Format("{0},{1},{2},{3}", CMSMessages.EmailAddress, CMSMessages.Gender, CMSMessages.FirstName, CMSMessages.LastName));
//write every subscriber to …Run Code Online (Sandbox Code Playgroud) 我正在尝试将List-Unsubscribe标头添加到正在发送的电子邮件中.到目前为止,我没有运气这么做.
到目前为止我得到了什么:
var mailMessage = new MailMessage
{
Subject = newsletter.Subject,
Body = newsLetterHTML,
IsBodyHtml = true,
Sender = new MailAddress(senderAddress)
};
mailMessage.To.Add(subscriber.Email);
mailMessage.ReplyToList.Add(senderAddress);
mailMessage.Headers.Add("List-Unsubscribe", unSubscribeUrl);
Run Code Online (Sandbox Code Playgroud)
的unSubscribeUrl是一样的东西"www.example.com/unlist?id=8822772727".当我发送电子邮件时,一切正常,除了list-unsubscribe选项.哪个没有在任何邮件客户端中显示.
欢迎任何帮助!
更新
这是我用来发送电子邮件的完整代码:
var mailMessage = new MailMessage
{
Subject = newsLetter.Subject,
Body = newsLetterHTML,
IsBodyHtml = true,
Sender = new MailAddress(senderAddress)
};
mailMessage.To.Add(subscriber.Email);
mailMessage.ReplyToList.Add(senderAddress);
mailMessage.Headers.Add("List-Unsubscribe", String.Format("<{0}>", "http://www.foo.com/unlist?id=8888"));
mailMessage.HeadersEncoding = Encoding.Default;
var smtpClient = new SmtpClient();
smtpClient.Send(mailMessage);
Run Code Online (Sandbox Code Playgroud)
更新2
经过一番研究后,我将标题放入mailMessage中.当我发送电子邮件时,我可以看到以下标题:
List-Unsubscribe: <http://demo.localhost/home/hobbymap-gerard/afmelden-voor-nieuwsbrief?id=c786aeb0-554d-4670-94d8-82d6f25a050b>
MIME-Version: 1.0
From: info@test.nl
To: test@gmail.com
Reply-To: info@test.nl
Date: 8 …Run Code Online (Sandbox Code Playgroud) 我需要解析从第三方到C#对象的XML文件.我收到的一些XML具有枚举值,我想将其存储在枚举类型中.
例如,我有以下xml文件的xsd:
<xsd:simpleType name="brandstof">
<xsd:restriction base="xsd:string">
<!-- Benzine -->
<xsd:enumeration value="B" />
<!-- Diesel -->
<xsd:enumeration value="D" />
<!-- LPG/Gas -->
<xsd:enumeration value="L" />
<!-- LPG G3 -->
<xsd:enumeration value="3" />
<!-- Elektrisch -->
<xsd:enumeration value="E" />
<!-- Hybride -->
<xsd:enumeration value="H" />
<!-- Cryogeen -->
<xsd:enumeration value="C" />
<!-- Overig -->
<xsd:enumeration value="O" />
</xsd:restriction>
</xsd:simpleType>
Run Code Online (Sandbox Code Playgroud)
我想把它映射到枚举,我得到了这个:
public enum Fuel
{
B,
D,
L,
E,
H,
C,
O
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是xml可以包含一个3我似乎无法放入枚举类型的值.是否有任何解决方案将此值放入枚举中.
我也可以使用a -或a /中的其他值获取其他值,并且我想将其放入枚举类型中.
欢迎Anu建议!
我希望你能从开发人员的角度告诉我BPMN的优点和缺点.
我正在将UML与BPMN进行比较,并且发现了UML的一些优点和缺点,但BPMN没有.
我正在研究一个包含大量Javascript的AJAX应用程序.所有页面都通过AJAX加载.
在某个页面上,我有一个用Javascript构建的网格.现在,当我离开那个页面时,我想破坏那个网格.我调用jQuery.remove()但这只是从DOM中删除对象.
我的问题是如何从内存中删除此网格对象?因为当我离开页面时它仍然存在.
非常感激!
我刚从NHibernate 2.1更新到NHibernate 3.1.我发现使用Linq的equals运算符没有实现其他类型的字符串.
我在互联网上发现了一篇解决这个问题的文章.这适用于基本类型,但现在我想比较自定义实体,我无法让它工作.
我尝试了一些实现但没有工作:
ReflectionHelper.GetMethodDefinition<CustomEntity>(x => x.Equals(<CustomEntity>(0)))
ReflectionHelper.GetMethodDefinition<CustomEntity>(x => x.Equals(typeof(CustomEntity))
Run Code Online (Sandbox Code Playgroud)
我想要执行的查询如下:
Session.Query<SomeEntity>().Where(x => x.CustomEntity.Equals(CustomEntity);
Run Code Online (Sandbox Code Playgroud)
如何扩展equals以允许此操作而不是获取NotSupportedException?
我有一个服务方法,我想测试.该方法在同一个类中调用另一个方法.这个方法已经过测试,所以我想模仿那个方法.
这是我的设置:
private readonly Mock<INewsLetterRepository> _mockNewsLetterRepository;
private readonly Mock<INewsLetterService> _mockNewsLetterService;
private readonly INewsLetterService _newsLetterService;
public NewsLetterServiceTest()
{
_mockNewsLetterRepository = new Mock<INewsLetterRepository>();
_mockNewsLetterService = new Mock<INewsLetterService> {CallBase = true};
_newsLetterService = new NewsLetterService(_mockNewsLetterRepository.Object);
}
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的测试:
[TestMethod]
public void CreateNewsLetter_Should_Return_Empty_NewsLetter()
{
var template = new Template
{
PlaceHolders = new List<TemplatePlaceholder>()
};
var newsLetter = new NewsLetter {Template = template};
const string content = "<html><body><!--BROWSER--></body></html>";
_mockNewsLetterService.Setup(x => x.BuildNewsLetterHTML(It.IsAny<NewsLetter>())).Returns(content);
var actual = _mockNewsLetterService.Object.CreateNewsLetter(newsLetter);
Assert.AreEqual(content, actual);
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是我正在模拟的函数:BuildNewsLetterHTML返回null而不是它应该返回的内容.
这是我想要测试的函数的简化版本:
public string CreateNewsLetter(NewsLetter newsLetter)
{ …Run Code Online (Sandbox Code Playgroud)