Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不匹配任何可用视图_C#_Asp.net_Asp.net Mvc_Asp.net Core 2.0 - Fatal编程技术网

C# 不匹配任何可用视图

C# 不匹配任何可用视图,c#,asp.net,asp.net-mvc,asp.net-core-2.0,C#,Asp.net,Asp.net Mvc,Asp.net Core 2.0,我试图通过发件人接收电子邮件时出错 var htmlEmailText = await _viewRenderService.RenderToStringAsync( "Emails/ConfirmationEmailTemplate", emailModel); await _emailSender.SendEmailConfirmationAsync( model.Email, "Confirm your email", htmlEmailText); 它在本地运行得很好

我试图通过发件人接收电子邮件时出错

var htmlEmailText = await _viewRenderService.RenderToStringAsync(
    "Emails/ConfirmationEmailTemplate", emailModel);

await _emailSender.SendEmailConfirmationAsync(
    model.Email, "Confirm your email", htmlEmailText);
它在本地运行得很好,但部署后,日志中出现错误:

参数名称:电子邮件/确认邮件模板与任何可用视图不匹配(8e09fd17) System.ArgumentNullException:值不能为null。 参数名称:电子邮件/确认邮件模板与任何可用视图不匹配


有什么建议吗?

您的视图很可能部署为预编译文件(而不是
schtml
视图文件)。要将它们作为视图文件发布,您需要在
csproj
文件中禁用它们

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AssemblyName>MyWebProject.Namespace</AssemblyName>
    <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
  </PropertyGroup>

netcoreapp2.1
MyWebProject.Namespace
假的

首先,对我来说,本地系统和部署的版本之间的文件夹结构似乎有所不同,因此找不到模板。您是否已将视图部署到生产环境中?视图是否编译到您的应用程序中?您的
RenderToStringAsync()
方法是什么?您是否尝试过添加扩展名-即
“Emails/ConfirmationEmailTemplate.cshtml”
@stephenmueke应排除文件模板的文件扩展名-请参阅。最可能的原因是生产版本上的文件夹结构与本地版本不同。这似乎与此相关。您的建议+
有效!太好了,谢谢!!!