【问题标题】:Should i use a Template Framework? [closed]我应该使用模板框架吗? [关闭]
【发布时间】:2014-12-29 17:59:42
【问题描述】:

我有一个项目,其中允许管理员填写一个表单(从 6 种类型的表单中选择)每个都有自己的结构和设计,并让它保存这个表单并显示在幻灯片中,项目正在运行。

在此项目的先前版本中,幻灯片放映中的幻灯片是 html 页面,因此当管理员单击“保存表单”或“提交”按钮时,我会认为它会将其保存为具有指定的 html 页面特定文件夹内的布局,当我问我可以用什么来解决这个问题时,我被告知要查找模板框架(顺便说一下,这是用 C# 编码的)所以话虽如此,我一直在研究内置模板视觉工作室的框架,T4,这是做我想做的事情的可行途径吗?可以的话请解释一下。

这个项目正在使用 MVC 构建

【问题讨论】:

  • 每个人都在为自己没有选择最好的方式而苦恼。我知道那种感觉,但我认为这个问题对于堆栈溢出来说实在是太宽泛了。它只会花费基于主要意见的答案。
  • “每个都有自己的结构和设计” - 模板很多,怎么样?无论如何,我可能不会选择模板(绝对不是 TT),而是在选择“框架”之后围绕接口建模。
  • 我真正想知道的是 T4 是否能够满足我的要求
  • 要求没有明确说明。
  • “每个都有自己的结构和设计”是指6种类型的幻灯片,信息、公告、生日、工作纪念日、客户、新员工

标签: c# templates frameworks t4


【解决方案1】:

如果您的项目不是 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 中使用编写以下方法:

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 文件)。使用您的数据创建模型并使用上述方法将其保存在服务器端文件夹中。

【讨论】:

  • 这个项目正在使用 MVC
  • 那么,为什么不用MVC来渲染.html文件呢?只需将数据保存在某处,然后进行渲染。 T4 用于代码生成。如果你有 C# 并且想要创建 html,那么使用 Razor 和 MVC
  • 如何用MVC建站其实是一个很大的话题,你应该用“.NET MVC教程”搜索网页并开始一步步学习这项技术
  • 我在使用 mvc 之前创建了一个网站,但模板框架对我来说是新的
猜你喜欢
  • 2012-08-14
  • 2013-01-05
  • 1970-01-01
  • 2013-04-27
  • 2013-03-15
  • 2011-09-09
  • 2014-09-06
  • 2010-11-27
相关资源
最近更新 更多