As the example for this post I’ve decided that this page needs access to the Aurelia Router. The reason for this could for example be some interaction in the page where you’ll need to navigate the user away to some other route of the application. What we need to achieve is a version of the HomePersonClientModel that looks somewhat more like this:
In this post we'll take a short break from Aurelia and actually only use things that already should be at least somewhat familiar to most ASP.NET MVC developers. In my first post I made all navigation go through aurelias client side routing engine so what we need to do now is to ensure that any forms posted are posted async, a.k.a "through ajax". Note that everything I cover in this post could be used in any ASP.NET MVC site for forms that you want to post through ajax.
In this post I'll share the first step of the setup that was of one of my main goals with this approach of joining together asp.net mvc and aurelia; Sharing the same data model across server and client side development.
Our next step in creating this ASP.NET Core MVC/Aurelia hybrid application is to take the Aurelia enhancement of the razor views one tiny step further. In the previous post we made it possible to use any built in and custom aurelia attributes and elements within the razor views by "aurelia enhancing" the html we got back from the server. But what we didn't do in our enhance call is to include a model object that the markup can interact with through aurelia data and event bindings.
Let's continue right where we left in the previous blog post and enable the use of Aurelia attributes and elements in the server side rendered razor views. Follow along starting at this tag. To prepare I've changed the markup in the About.cshtml view to this: