हल करें मैं डेटाबेस से अपने रेज़र दृश्य को गतिशील रूप से संकलित करने के लिए Razor Engine का उपयोग कर रहा हूं। अब रेजर इंजन का उपयोग कर रहा हूँ 3.7.3। मैंने एचटीएमएल सहायक को पढ़ने और इसे संकलित करने के बारे में कुछ पोस्टिंग देखी, लेकिन यह रेजर इंजन के पुराने संस्करण के लिए था।एचटीएमएल सहायक
मैंने ITemplateServiceConfiguration
पढ़ा है, लेकिन मैं वास्तव में समझ नहीं सकता कि यह कैसे काम करता है।
मेरे सवाल है, मैं कैसे @Html (एचटीएमएल सहायक), @url (यूआरएल हेल्पर), और @section (जैसे @Section स्क्रिप्ट से() razorengine (v3.7.3) सफलतापूर्वक runcompile कर सकते हैं, @Section विशेष रुप से प्रदर्शित) मेरे डेटाबेस से एचटीएमएल सामग्री में?
जो कुछ मैंने अभी तक किया है। मैंने एक कोड को लागू करने की कोशिश की जिसे मुझे एक और पोस्ट से मिला। कोड रेजर इंजन के पुराने संस्करण के लिए था। उन्होंने सुझाव दिया कि हम अपने ही सहायक वर्ग बनाने के लिए:
public class RazorHtmlHelper
{
public IEncodedString Partial(string viewName)
{
ITemplate template = RazorEngine.Razor.Resolve(viewName);
ExecuteContext ec = new ExecuteContext();
RawString result = new RawString(template.Run(ec));
return result;
}
}
public class RazorUrlHelper
{
public string Encode(string url)
{
return System.Uri.EscapeUriString(url);
}
}
और फिर उसने हमारे अपने templating बनाने के लिए सुझाव:
public class RazorTemplateBase<T> : TemplateBase<T>
{
private RazorUrlHelper _urlHelper = new RazorUrlHelper();
private RazorHtmlHelper _htmlHelper = new RazorHtmlHelper();
public RazorUrlHelper Url
{
get
{
return this._urlHelper;
}
}
public RazorHtmlHelper Html
{
get
{
return this._htmlHelper;
}
}
}
और पार्स करने से पहले, हम अपने config निर्धारित करने की आवश्यकता:
Razor.SetTemplateService(new TemplateService(new TemplateServiceConfiguration()
{
BaseTemplateType = typeof(RazorTemplateBase<>)
};
));
result = RazorEngine.Razor.Parse(templateText, model);
RazorUrlHelper के साथ कोई समस्या नहीं है, लेकिन RazorHtmlHelper इन कोडों को ठीक से नहीं पढ़ सकता है क्योंकि इसे बहिष्कृत किया गया है:
ITemplate template = RazorEngine.Razor.Resolve(viewName);
ExecuteContext ec = new ExecuteContext();
RawString result = new RawString(template.Run(ec));
ऊपर कोड से this post
क्या आप दिखा सकते हैं कि आपने अभी तक क्या किया है? SO ताकि हम आपको बेहतर मदद कर सकें –
ठीक है मैंने इसे संपादित किया है, कृपया समीक्षा करें। –
संभावित डुप्लिकेट [RazorEngine WebApiTemplateBase @ Url.Content()] (http://stackoverflow.com/questions/32461041/razorengine-webapitemplatebase-url-content) – matthid