我获得了一个项目,其中管理员可以填写表格(从6种表格中选择),每个表格都有自己的结构和设计,并保存此表格,并在幻灯片放映中显示项目正在运行。
在此项目的先前版本中,幻灯片放映中的幻灯片是html页面,因此当管理员点击“保存表单”时,我会这样做。或"提交"按钮,它会将其保存为特定文件夹中具有指定布局的html页面,当我问我可以使用什么东西时,我被告知要查找模板框架(这是用C#编码的方式)所以说,我一直在研究视觉工作室的内置模板框架,T4,这是一个可行的途径去做我想做的事情吗?请解释一下你是否可以。
此项目正在使用MVC构建
答案 0 :(得分:0)
如果您的项目不是Web项目,则可以使用此项目:http://razorengine.codeplex.com/来呈现.html文件
它是开源的,简单的:
string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });
UPD1:回答你关于T4的问题:是的,用T4你可以创建HTML。但是,最好使用Razor,Razor是为HTML模板创建的,它是主流和常用的方式。
UPD2:好的,你说它是一个MVC项目。然后,在Controller内部使用write以下方法:
public void RenderViewToFile(string viewName, object model, string filePath)
{
ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
var rendredContent = sw.GetStringBuilder().ToString();
File.WriteAllText(filePath, rendredContent);
}
}
接下来,为您的模板创建视图(.cshtml文件)。使用您的数据创建模型并使用上述方法将其保存在服务器端文件夹中。