我的控制器中有以下ActionResult
public async Task<ActionResult> NewTickets()
{
// Show tickets for all divisions a agent is in
var user = "abcdefg";
var company = "company1";
var tickets = (from a in db2.Ticket
join c in db2.Division on a.DivisionId equals c.DivisionId
join dp in db2.DivisionParticipator on c.DivisionId equals dp.DivisionId
where c.CompanyId == company.CompanyId && a.Status == "New" && dp.ApplicationUserId == user.Id
select new
{
Id = a.Id,
DivisionId = a.DivisionId,
Name = a.Name,
TicketDate = a.TicketDate,
NewPosts = a.NewPosts,
Status = a.Status, …Run Code Online (Sandbox Code Playgroud) 我刚开始将应用程序从ASP.NET MVC 5移植到ASP.NET Core 2.0(使用EF Core和Identity).一切顺利,但我遇到了一个我似乎无法找到答案的问题.
我想要做的只是根据分配的角色(管理员,用户等)获取数据库中的所有用户.
这在我刚刚使用的MVC 5中很简单:
_db.UserCompany.Where(x => x.User.Roles.Any(s => s.RoleId == adminRole.Id)
Run Code Online (Sandbox Code Playgroud)
但是,使用.NET Core/Entity Framework Core,我似乎无法再浏览用户 - >角色.
所以我的问题是,如果Identity/EF Core中已经实现了实现我想要的方式吗?或者是否有必要实施自定义解决方案?
提前致谢!
我正在将项目从ASP.NET MVC 5迁移到ASP.NET Core 2,并遇到了一些与之相关的问题 MultipartFormDataStreamProvider
据我所知,它还不是.NET Core的一部分,因此无法使用.我试图解决的问题是使用Sendgrid,解析电子邮件的代码的一部分.
.NET MVC 5代码如下所示
[HttpPost]
public async Task<HttpResponseMessage> Post()
{
var root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
await Request.Content.ReadAsMultipartAsync(provider);
var email = new Email
{
Dkim = provider.FormData.GetValues("dkim").FirstOrDefault(),
To = provider.FormData.GetValues("to").FirstOrDefault(),
Html = provider.FormData.GetValues("html").FirstOrDefault()
}
}
Run Code Online (Sandbox Code Playgroud)
此代码是从Sendgrid API文档中获取的代码段:https://sendgrid.com/docs/Integrate/Code_Examples/Webhook_Examples/csharp.html
所以我一直在摆弄这个问题,试图想出一个解决方案,但我完全陷入困境.我最接近解决方案的是使用Request.Form例如
To = form["to"].SingleOrDefault(),
From = form["from"].SingleOrDefault()
Run Code Online (Sandbox Code Playgroud)
但是,这仅适用于通过ARC(或任何其他REST-API测试程序)的ARC REST客户端插件发送数据.此解决方案也将无法处理诸如图像之类的附件.
所以我转向StackOverflow社区,希望有人有一些指针或解决方案,如何将其迁移到.NET Core 2.
提前致谢!
完全陷入与 SendGrid 提供的入站解析 Webhook 功能相关的问题:https ://sendgrid.com/docs/for-developers/parsing-email/setting-up-the-inbound-parse-webhook/
\n\n首先,检索发送到我的应用程序端点的邮件一切正常。使用Request.Form我能够检索数据并使用它。
问题是,我们在收到一些邮件时开始注意到问号符号而不是字母(使用 \xc3\x85 \xc3\x84 和 \xc3\x96 用瑞典语编写)。发送纯文本邮件和带有 HTML 正文的邮件时都会发生这种情况。
\n\n然而,这种情况只是偶尔发生。经过大量搜索后,我发现如果邮件是从邮箱或 Outlook(或类似的)发送的,并且应用程序的字符集设置为 iso-8859-1,那么 \xc3\x85 \xc3\ x84 \xc3\x96 被问号替换。
\n\n为了复制错误并能够对其进行调试,我设置了一个 HTML 页面,其中包含使用 iso-8859-1 编码的表单,发送与上面链接中看到的类似的有效负载(默认负载)。之后,我们进行了大量的测试,试图让它发挥作用。
\n\n截至目前,我正在尝试重新编码输入,但没有成功。我正在测试的代码:
\n\n Encoding wind1252 = Encoding.GetEncoding(1252);\n Encoding utf8 = Encoding.UTF8;\n byte[] wind1252Bytes = wind1252.GetBytes(Request.Form.["html"]);\n byte[] utf8Bytes = Encoding.Convert(wind1252, utf8,wind1252Bytes);\n string utf8String = Encoding.UTF8.GetString(utf8Bytes);\nRun Code Online (Sandbox Code Playgroud)\n\n这只会导致utf8String产生与“???”相同的结果。其中 \xc3\x85 \xc3\x84 \xc3\x96 应该是。我的猜测是,这可能是由于 Request.Form["html"] 返回一个 UTF-16 字符串,该字符串的内容已经以错误的编码 iso-8859-1 进行编码。
获取POST的方法如下
\n\npublic async Task<InboundParseModel> FetchMail(IFormCollection …Run Code Online (Sandbox Code Playgroud) 我有一个问题,我正在努力.一些背景:用户可以在我的应用程序中选择要使用的应用程序的颜色方案,此选项存储在数据库中.
我想要做的是基于这个选择,在页面加载时,提供CSS文件以供用户选择.
我一直在尝试做的是通过在_Layout.cshtml页面中执行AJAX请求来检查用户选择,并将相应的CSS附加到标头.这是有效但不是很好,因为有一些延迟,它只是不是一个好的解决方案,因为有时在加载CSS后元素的样式不正确.
我想做的是检查服务器端,就像控制器中的普通视图一样(布局页面缺少控制器,因为你知道这就是我被困住的地方).然后在_Layout视图中添加正确的CSS.
亲爱的堆栈溢出,你对我有什么建议可以实现吗?我的用户需要甜蜜的黑暗主题.;)
提前致谢!
我正在使用SyndicationFeed从不同的 RSS 源检索一些数据。但是,我在尝试阅读 RSS 时遇到了一个问题,就我所见,该 RSS 与有效的元素和数据具有相同的元素和数据。
SyndicationFeed feed = SyndicationFeed.Load(XmlReader.Create("http://rsslink"));
Run Code Online (Sandbox Code Playgroud)
例如,这个 RSS 工作得很好并且被接受没有错误:http : //kjellochklortanten.libsyn.com/rss
虽然这个 RSS:http : //feeds.feedburner.com/tedtalks_audio导致SyndicationFeed抛出错误(这是从瑞典语翻译过来的):
解析 XML 中的 DateTime 值时出错
我查看了两个提要中的日期,据我所知,它们是相同的。
任何 C#-ninja 都知道可能导致此错误的原因?
提前致谢!