Introduction
A few hours ago I started a website in Nancy. Now I want to show data I have in my webpage.
And here the docs were not all that helpfull. But I made it.
The Model
First of all I need a Model.
Namespace Model
Public Class PlantsModel
Public Property Id As Integer
Public Property Name As String
Public Property LatinName As String
End Class
End Namespace
And I put that in a Model folder. I ended with Model since that is the convention but not really needed in all cases.
The View
Time to move on to more exiting things.
I created a Plants.html file.
html
<!DOCTYPE html>
<html>
<head>
<title>NancyFX</title>
</head>
<body>
<h1>Plants</h1>
<div id="plants">
<p>@Model.Id</p>
<p>@Model.Name</p>
</div>
</body>
</html>
I used the SuperSimpleViewEngine for this.
As you see I just add the @Model. and then the name of the property I want. Simples.
Now I just need to tell my controller what to do.
The Controller
I guess we can call our module our controller.
```vbnet Imports WebApplication2.Model Imports Nancy
Public Class PlantsModule Inherits NancyModule
Public Sub New()
MyBase.Get("/plants") = Function(parameters)
Return View(New PlantsModel() With {.Id = 2, .Name = "test"})
End Function
End Sub
End Class``` So the url http://localhost/plants will take you to the page Plants.htmland will inject the PlantsModel I just created in there. By convention the fact that you inject a PlanstModel in there informs Nancy that you want to use the Plant.html view.
You could have written this instead.
```vbnet Imports WebApplication2.Model Imports Nancy
Public Class PlantsModule Inherits NancyModule
Public Sub New()
MyBase.Get("/plants") = Function(parameters)
Return View("Plants.html", New PlantsModel() With {.Id = 2, .Name = "test"})
End Function
End Sub
End Class``` Or any other html.
And that gives us this amazing page.
Conclusion
Slightly harder than it should have been because I could not find the correct docs that explained this simply. But I got it working anyway.