ASP.NET MVC 5 Html.Partial & Html.RenderPartial

ASP.NET MVC 5 Html.Partial & Html.RenderPartial

Nhận biết giữa Html.Partial và Html.RenderPartial, trong bài viết này mình chia sẻ cách thức hoạt động của chúng trong ASP.NET MVC 5
Trước tiên giả sử mình đã có một model User như sau:

//Models/User.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace MVC5_HelloWorld.Models
{
    public class User
    {
        [Key, Column(Order = 1)]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int idUser { get; set; }

        public string Username { get; set; }

        public string Password { get; set; }

        public int Lever { get; set; }

    }
}

Tiếp theo ta hãy cùng phân biệt chúng như sau: Html.Partial and Html.RenderPartial nó tướng đối giống nhau. Chỉ khác nhau ở chổ một cách thức gọi chúng mà thôi, điều trả về chuổi html

+ Html.Partial: @Html.Partial("_MenuWebsite") hoặc trỏ tới đường dẫn chứa Partial @Html.Partial("~Views/Home/_MenuWebsite")

Ví dụ:

//HomeControlelr.cs
			public ActionResult Index()
			{
				var data = (from s in _db.Users select s).ToList();
				ViewBag.users = data;
				 ViewBag.title = "MVC5 - Hello World";

				return View(data);
			}
			
	//Index.cshtml
	@model List<MVC5_HelloWorld.Models.User>
	<div class="box">
		
			@Html.Partial("_MenuPartial", Model)
	
	</div>
	 
	//_MenuPartial.cshtml 
	<table class="table table-bordered">
		@foreach (var user in ViewBag.users)
		{
			<tr>
			   <td>@user.Username</td>
			   <td>@user.Password</td>
			   @{
					int Lever  = user.Lever;
					if(Lever == 1){
						<td>Admin</td>
					}else{
						<td>Member</td>
					}
			   }
			</tr>
		}
	</table>

+ Html.RenderPartial: tương tự như Partial, nhưng RenderPartial viết trực tiếp vào phản hồi luồng đầu ra thay vì trả về một chuỗi và nó được đặt trong một khối lệnh, bạn có thể nhìn thấy như sau:

@{ 
	Html.RenderPartial("name_partial", data); 
}

Ví dụ:

//HomeControlelr.cs
			public ActionResult Index()
			{
				var data = (from s in _db.Users select s).ToList();
				ViewBag.users = data;
				return View(data);
			}

//Index.cshtml
@model List<MVC5_HelloWorld.Models.User>
@{
   Html.RenderPartial("_MenuRenderPartial", Model);
}

//_MenuRenderPartial.cshtml
@model List<MVC5_HelloWorld.Models.User>
<table class="table table-bordered">
    @foreach (var user in ViewBag.users)
    {
        <tr>
			   <td>@user.Username</td>
			   <td>@user.Password</td>
			   @{
					int Lever  = user.Lever;
					if(Lever == 1){
						<td>Admin</td>
					}else{
						<td>Member</td>
					}
			   }
			</tr>
    }
</table>

 

Tag: ASP.NET MVC