Skip to content

Commit d1e4e4a

Browse files
committed
Moving the footer section to a new view component
1 parent 7c2db66 commit d1e4e4a

File tree

10 files changed

+68
-12
lines changed

10 files changed

+68
-12
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using Microsoft.AspNetCore.Mvc;
2+
using OdeToFoodRider.Services;
3+
4+
namespace OdeToFoodRider.ViewComponents
5+
{
6+
public class GreeterViewComponent : ViewComponent
7+
{
8+
private readonly IGreeter _greeter;
9+
10+
public GreeterViewComponent(IGreeter greeter)
11+
{
12+
_greeter = greeter;
13+
}
14+
15+
public IViewComponentResult Invoke()
16+
{
17+
var model = _greeter.GetMessageOfTheDay();
18+
return View("Default", model);
19+
}
20+
}
21+
}

OdeToFoodRider/OdeToFoodRider/Views/Home/Index.cshtml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,3 @@
1212
}
1313

1414
<div ><a asp-action="Create">Add Restaurant</a></div>
15-
16-
@section footer
17-
{
18-
@Model.CurrentMessage
19-
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@model string
2+
3+
<div>
4+
@Model
5+
</div>

OdeToFoodRider/OdeToFoodRider/Views/Shared/_Layout.cshtml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
<div>
99
@RenderBody()
1010
</div>
11-
<footer>@RenderSection("footer", required: false)</footer>
11+
<footer>
12+
@RenderSection("footer", required: false)
13+
@await Component.InvokeAsync("Greeter")
14+
<vc:greeter></vc:greeter>
15+
</footer>
1216
</body>
1317
</html>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
@using OdeToFoodRider.Models
22
@using OdeToFoodRider.ViewModels
33
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
4-
@* VSRD: No completion suggestions for assembly name in Rider, too :( - completion for @addTagHelper is available though *@
4+
@addTagHelper *, OdeToFoodRider
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using Microsoft.AspNetCore.Mvc;
2+
using OdeToFoodVisualStudio.Services;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Threading.Tasks;
7+
8+
namespace OdeToFoodVisualStudio.ViewComponents
9+
{
10+
public class GreeterViewComponent : ViewComponent
11+
{
12+
private IGreeter _greeter;
13+
14+
public GreeterViewComponent(IGreeter greeter)
15+
{
16+
_greeter = greeter;
17+
}
18+
19+
public IViewComponentResult Invoke()
20+
{
21+
var model = _greeter.GetMessageOfTheDay();
22+
return View("Default", model);
23+
}
24+
}
25+
}

OdeToFoodVisualStudio/OdeToFoodVisualStudio/Views/Home/Index.cshtml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,3 @@
1414
<div>
1515
<a asp-action="Create">Add Restaurant</a>
1616
</div>
17-
18-
@section footer {
19-
@Model.CurrentMessage
20-
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@model string
2+
3+
<div>
4+
@Model
5+
</div>

OdeToFoodVisualStudio/OdeToFoodVisualStudio/Views/Shared/_Layout.cshtml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
<div>
1010
@RenderBody()
1111
</div>
12-
<footer>@RenderSection("footer", required: false)</footer>
12+
<footer>
13+
@RenderSection("footer", required: false)
14+
@await Component.InvokeAsync("Greeter")
15+
<vc:greeter></vc:greeter>
16+
</footer>
1317
</body>
1418
</html>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@using OdeToFoodVisualStudio.Models;
22
@using OdeToFoodVisualStudio.ViewModels;
33
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
4+
@addTagHelper *, OdeToFoodVisualStudio
45
@* VSRD: Visual Studio provides no completion for the assembly name above *@

0 commit comments

Comments
 (0)