Using Model

Using Model

We could have used a model instead of dealing with primitive types as shown below

Controller code

public class HomeController : Controller
{
    [HttpGet]
    public IActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public IActionResult Index(AddNumbersModel model)
    {
        if (ModelState.IsValid)
        {
            int result = model.Number1 + model.Number2;
            ViewBag.Result = result;
        }
        return View(model);
    }
}

Model Code

public class AddNumbersModel
{
    [Required(ErrorMessage = "Please enter a value for Number 1")]
    public int Number1 { get; set; }

    [Required(ErrorMessage = "Please enter a value for Number 2")]
    public int Number2 { get; set; }
}

View Code

@model AddNumbersModel
@{
    ViewData["Title"] = "Add Numbers";
}

<h1>Add Numbers</h1>

<form asp-action="Index" method="post">
    <div>
        <label asp-for="Number1">Number 1:</label>
        <input asp-for="Number1" required>
        <span asp-validation-for="Number1" class="text-danger"></span>
    </div>
    <div>
        <label asp-for="Number2">Number 2:</label>
        <input asp-for="Number2" required>
        <span asp-validation-for="Number2" class="text-danger"></span>
    </div>
    <button type="submit">Add</button>
</form>

@if (ViewBag.Result != null)
{
    <p>The result of adding the two numbers is @ViewBag.Result.</p>
}

@section Scripts {
    <partial name="_ValidationScriptsPartial" />
}

In this example, we have created a strongly-typed AddNumbersModel class that has two properties Number1 and Number2, and decorated them with Required attributes to ensure that they are not null or empty.

Last updated