Skip to content

Instantly share code, notes, and snippets.

@conficient
Last active November 6, 2024 15:39
Show Gist options
  • Select an option

  • Save conficient/ba98d1662c659e170ec16650acea05c8 to your computer and use it in GitHub Desktop.

Select an option

Save conficient/ba98d1662c659e170ec16650acea05c8 to your computer and use it in GitHub Desktop.
Blazor Modal Dialog with no JS interop
<button class="btn btn-primary" @onclick="@ModalShow">Show Dialog!</button>
@if (showModal)
{
<div class="modal fade show" id="myModal" style="display:block" aria-modal="true" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">Confirm action</h4>
<button type="button" class="close" @onclick="@ModalCancel">&times;</button>
</div>
<!-- Modal body -->
<div class="modal-body">
<p>This is the modal content!</p>
</div>
<!-- Modal footer -->
<div class="modal-footer">
<button type="button" class="btn" @onclick="@ModalCancel">Cancel</button>
<button type="button" class="btn btn-danger" @onclick=@ModalOk>Delete</button>
</div>
</div>
</div>
</div>
}
<hr />
@code
{
bool showModal = false;
void ModalShow() => showModal = true;
void ModalCancel() => showModal = false;
void ModalOk()
{
Console.WriteLine("Modal ok");
showModal = false;
}
}
@scott-scott
Copy link
Copy Markdown

thank you for sharing, so simple and works great

@conficient
Copy link
Copy Markdown
Author

Glad it helped @scott-scott

@conficient
Copy link
Copy Markdown
Author

Just noticed it's quite old and the syntax needs fixing

@conficient
Copy link
Copy Markdown
Author

Updated for latest Blazor syntax - https://blazorfiddle.com/s/91rhlt8z fiddle example of working code

@FelipeCostaGualberto
Copy link
Copy Markdown

FelipeCostaGualberto commented Jun 12, 2020

Great example, thanks.

@conficient I improved a little bit by changing rows 9 and 10 for:

    <div class="modal fade show" style="display:block" aria-modal="true" role="dialog" @onclick="@ModalCancel">
        <div class="modal-dialog" @onclick:stopPropagation="true">

This way, The modal will close if you click outside it. I also removed de id attribute.

@conficient
Copy link
Copy Markdown
Author

Thanks for the contribution, @FelipeCostaGualberto !

@REMjn832
Copy link
Copy Markdown

REMjn832 commented Jul 9, 2020

Excellent job! This was the cleanest and simplest way to 'skin this cat' I have seen. Well done and works great in my server-side Blazor project.

@conficient
Copy link
Copy Markdown
Author

Happy to help @REMjn832

@VGsss
Copy link
Copy Markdown

VGsss commented Sep 9, 2020

Thank you for this, helped me a lot.

@thefifty
Copy link
Copy Markdown

Thank you so much, helped me easily

@aalshibily
Copy link
Copy Markdown

aalshibily commented Nov 25, 2020

Here's my minor contribution

<div class="modal fade show" style="display:block; background-color: rgba(10,10,10,.8);" aria-modal="true" role="dialog">

https://blazorfiddle.com/s/0dbkxpdu -- Fiddle Example of darkened background

This will darken everything outside of the modal itself. It a nice touch to make sure the user focuses on the modal from a UI/UX perspective.
Also, feel free to experiment with different background colors/opacities!

Happy Blazoring!

Edit: Added Fiddle example!

@conficient
Copy link
Copy Markdown
Author

Many thanks for your contribution, @aalshibily

@natae
Copy link
Copy Markdown

natae commented Feb 8, 2021

Thank you for this, helped me.

@conficient
Copy link
Copy Markdown
Author

Thank you for this, helped me.

Glad to hear it! :)

@garciaarthur
Copy link
Copy Markdown

AWESOME SOLUTION!
Thank you @conficient, your code guided me in the right direction.
I can't contribute directly to your code, but I can show my implementation and hope to contribute to the discussion.
Here's the full code (thanks @FelipeCostaGualberto and @aalshibily, your changes were also implemented)

https://blazorfiddle.com/s/hr4id1vk

@CuvinStefanCristian
Copy link
Copy Markdown

Thank you so much! Easiest solution out there.. This is helping my final project at university!

@Adomovic
Copy link
Copy Markdown

Adomovic commented Aug 1, 2021

Perfect,

@conficient
Copy link
Copy Markdown
Author

conficient commented Oct 5, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment