Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to use method 'IncludeAsync()' to import partial view in root view? #529

Open
lawtj93 opened this issue Aug 4, 2023 · 0 comments
Open

Comments

@lawtj93
Copy link

lawtj93 commented Aug 4, 2023

Describe the bug
Hi:
I use the FluentEmail.Razor 3.0.2 in my .NET 6 project and it's working fine for most of what I need it to do.

I have a layout file _DefaultEmailLayout.cshtml that contains a basic header and footer, so in one of my template files ForgotPassword.cshtml i reference this layout file.

@model SharedLibrary.Models.Shared.EmailTemplate

@{
     Layout = Model.LayoutLocation; //contains location of layout file
}

<tr>
    <td class="mceBlockContainer" valign="top" style="background-color:#ffffff; padding-top:21px; padding-bottom:7px; padding-right:25px; padding-left:25px">
        <div class="mceText" id="dataBlockId-40" style="width:100%">
            <p class="last-child">
                <strong>Your password</strong>
            </p>
        </div>
    </td>
</tr>
<tr>
    <td class="mceBlockContainer" valign="top" style="background-color:#ffffff; padding-top:7px; padding-bottom:40px; padding-right:25px; padding-left:25px">
        <div class="mceText" id="dataBlockId-25" style="width:100%">
            <p>Hi @Model.FirstName,</p>
        </div>
    </td>
</tr>
<tr>
    <td class="mceBlockContainer" valign="top" style="background-color:#ffffff; padding-top:21px; padding-bottom:7px; padding-right:25px; padding-left:25px">
        <div class="mceText" id="dataBlockId-40" style="width:100%">
            <p class="last-child">
                <strong>Need Help?</strong>
            </p>
        </div>
    </td>
</tr>
<tr>
    <td class="mceBlockContainer" valign="top" style="background-color:#ffffff; padding-top:7px; padding-bottom:40px; padding-right:25px; padding-left:25px">
        <div class="mceText" id="dataBlockId-25" style="width:100%">
            <p>
            </p>
            <p class="last-child">
                If you need any assistance, our Client Support Team are here to help. Feel free to reach out to our team via email on XXX
            </p>
        </div>
    </td>
</tr>

And in the code itself when I use the FluentEmail.UsingTemplateFromFile().SendAsync() it sends the email successfully and the email is received looking as expected with the layout files header and footer.

What I'm having trouble with is that a few of my emails share a section that you see in the ForgotPassword.cshtml file, the Need Help section, so instead of duplicating it in all those files I placed it in a separate file called _NeedHelpLayout.cshtml

Now if I replace that section in ForgotPassword.cshtml with the below

@{ await IncludeAsync("_NeedHelpLayout.cshtml", Model);}

however when I try to use this line i get the error " CS0103 The name 'IncludeAsync' does not exist in the current context "

Based off reading I found an example of where the include async didn't provide an error and that was when it had these 2 lines at the beginning of the file

@using RazorLight
@inherits TemplatePage<object>

However I have a model that I need to include already that I need for the rest of my templates

@model SharedLibrary.Models.Shared.EmailTemplate

Hopefully I've shared enough details of the problem, if I've missed anything let me know

To Reproduce
In a standard template file, including @{ await IncludeAsync("_NeedHelpLayout.cshtml", Model);}

Expected behavior
No error is shown in VS

Information (please complete the following information):

  • OS: Windows 11 Home 22H2
  • Platform .Net 6
  • RazorLight version : 2.3.1
  • Are you using the OFFICIAL RazorLight package? Yes
  • Visual Studio Community 2022 (64-bit) Version 17.6.5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant