Call a partial view that accepts Model as parameter in ASP.NET MVC

How to call a partial view that accepts Model as parameter?

To demonstrate this, let’s first create a Controller action method.
CONTROLLER CODE
public ActionResult IndexWithPartialView()
        {
            var data = db.PersonalDetails.ToList();
            return View(data);
        }
Above action method is returning collection of PersonalDetails to the View.
VIEW OF THE ABOVE ACTION METHOD
@model IEnumerable<MVCTraining5.Models.PersonalDetail>

@{
    ViewBag.Title = "IndexWithPartialView";
}

<h2>Index With PartialView</h2>

@Html.Partial("_ListPersonalDetail", Model)
Above view accepts the collection as Model that is passed to the _ListPersonalDetail partial view by calling @Html.Partial method in the 2nd parameter.
PARTIALVIEW CODE
(_ListPersonalDetail.cshtml)
@model IEnumerable<MVCTraining5.Models.PersonalDetail>

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.FirstName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.LastName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Age)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.IsActive)
        </th>
     </tr>

     @foreach (var item in Model)
     {
         <tr>
             <td>
                 @Html.DisplayFor(modelItem => item.FirstName)
             </td>
             <td>
                 @Html.DisplayFor(modelItem => item.LastName)
             </td>
             <td>
                 @Html.DisplayFor(modelItem => item.Age)
             </td>
             <td>
                 @Html.DisplayFor(modelItem => item.IsActive)
             </td>
         </tr>
     }
</table>
Above partial view accepts collection passed in @Html.Partial method and loops through each item in the list and renders record no the web page.

No comments:

Post a Comment

How to register multiple implementations of the same interface in Asp.Net Core?

 Problem: I have services that are derived from the same interface. public interface IService { } public class ServiceA : IService { ...