PDA

View Full Version : مبتدی: خروجی html از Razor



آنتریوم
پنج شنبه 13 تیر 1392, 14:23 عصر
من چی جوری خروجی Razor view رو به شکل یه فایل HTML در بیارم تا بتونم با window.print() ازش پرینت بگیرم؟

Cybersilent
یک شنبه 16 تیر 1392, 11:54 صبح
اگر درست منظورتون رو متوجه شده باشم! ، خروجی Razor به صورت داینامیک تولید میشه و برای مشاهده کدهای html اون باید پروژه رو اجرا کرد و در مرورگر کلید Ctrl+U رو بزنید تا کدهای html نهایی تولید شده توسط razor رو بتونید ببینید.

آنتریوم
یک شنبه 16 تیر 1392, 17:41 عصر
ممنون ولی منظورم این هست که من مثلا تو view یه سری المنت دارم که با اونا از کنترلرم خروجی می گیرم تو پروژه نشون میدم. ولی اونا تابع هایی هستن که تو view و با syntax Razor خروجی رو برام درست می کنن. من میخوام از یک طریقی فقط بتونم تو کد html مثلا خروجی یک کوئری رو ببینم تهش هم با window.print بتونم چاپش کنم. ببخشید من خیلی مبتدی هستم نمی تونم منظورم رو درست بیان کنم. مثلا مثل asp.net که بهمون خروجی html میده ولی من اون روش رو بلد نیستم. مثلا بشه برای یه کلاسی یه view از نوع ASPX ایجاد کرد ازش خروجی HTML گرفت. چه جوری این کارو تو MVC انجام بدم. ممنون

Saeed_m_Farid
دوشنبه 17 تیر 1392, 10:26 صبح
نه زیادم سوال مبتدی نیست! البته نمیدونم راه راحت تری داره یا نه، ولی تا جائی که من میدونم:
شما باید اول View (یا PartialView) رو پیدا کنید، بعد تو یک ViewContext جدید اون view رو Render کنید و نتیجه رو با یک StringWriter تو رشته بریزید:


public string RenderRazorViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var sw = new System.IO.StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerCont ext, viewName);
var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContex t, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}

آنتریوم
دوشنبه 17 تیر 1392, 12:44 عصر
مرسییی

بعد از این چه استفاده ای بکنم؟ کجا ازش خروجی بگیرم؟

Saeed_m_Farid
دوشنبه 17 تیر 1392, 16:34 عصر
بعد از این چه استفاده ای بکنم؟ کجا ازش خروجی بگیرم؟

... مثلا مثل asp.net که بهمون خروجی html میده ...
این همون "خروجی HTML " که میخواستید رو تولید میکنه، می تونید یه اکشن بنویسید و مدل و View ای که درست کردین (همون که الان نمایش داده میشه و میخواین پرینتش کنید) رو به این تابع پاس بدین و خروجی رو هرجور که با aspx محتوی Html رو پرینت میگرفتین، همینجا هم پرینت بدین ...

آنتریوم
دوشنبه 17 تیر 1392, 16:39 عصر
دستتون درد نکنه من اگر به مشکل برخورد کردم بازم میپرسم مرسی