7. Passing Data from the Controller to the View
Step 1: In HelloWorldController.cs
, change the Welcome
method to add a Message
and NumTimes
value to the ViewData
dictionary.
using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;
namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult Welcome(string name, int numTimes = 1)
{
ViewData["Message"] = "Hello " + name;
ViewData["NumTimes"] = numTimes;
return View();
}
}
}
The ViewData
dictionary object contains data that will be passed to the view.
Step 2: Create a Welcome view template named Views/HelloWorld/Welcome.cshtml
.
You'll create a loop in the Welcome.cshtml
view template that displays "Hello" NumTimes
. Replace the contents of Views/HelloWorld/Welcome.cshtml
with the following:
@{
ViewData["Title"] = "Welcome";
}
<h2>Welcome</h2>
<ul>
@for (int i = 0; i < (int)ViewData["NumTimes"]!; i++)
{
<li>@ViewData["Message"]</li>
}
</ul>
Step 3: Save your changes and browse to the following URL:
https://localhost:5001/HelloWorld/Welcome?name=Rick&numtimes=4
Data is taken from the URL and passed to the controller using the MVC model binder. The controller packages the data into a ViewData
dictionary and passes that object to the view. The view then renders the data as HTML to the browser.

Last updated