//
you're reading...
.NET, C Sharp .NET, Codes

Chuyển Một Partial View Thành Chuỗi

Khi bạn trả kết quả hiện thị view cho action là một partial view thì chỉ cần sử dụng hàm PartialView để làm điều đó. Nhưng nếu bạn muốn trả về một kiểu dữ liệu Json mà trong đó có một giá trị là lưu trữ một partial view nào đó của bạn thì không thể sử dụng hàm PartialView được, lúc này bạn cần phải sử dụng đoạn code dưới đây để có thể chuyển một partial view thành một chuỗi thông qua hàm RenderPartialViewToString và có thể chứa trong một biến kiểu json hay kiểu khác:

public abstract class MyBaseController : Controller
{
	protected string RenderPartialViewToString()
    {
		return RenderPartialViewToString(null, null);
	}

    protected string RenderPartialViewToString(string viewName)
    {
		return RenderPartialViewToString(viewName, null);
    }

    protected string RenderPartialViewToString(object model)
    {
		return RenderPartialViewToString(null, model);
    }

    protected string RenderPartialViewToString(string viewName, object model)
    {
		if (string.IsNullOrEmpty(viewName))
			viewName = ControllerContext.RouteData.GetRequiredString("action");

            ViewData.Model = model;

            using (StringWriter sw = new StringWriter())
            {
                ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
                ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
                viewResult.View.Render(viewContext, sw);

                return sw.GetStringBuilder().ToString();
            }
        }
    }
}

~Sưu Tầm~

Advertisements

Discussion

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: