生成小的HTML代码段的辅助方法

八倍体

我正在使用ASP.NET MVC将HTML视图与模型分开。但是,有一种特定的情况使我有些困惑。

我有几个常用的小型信息面板,它们本身由许多较小的信息面板组成。它们从各种模型(有时是单个实例,有时是对象列表)中包含的子类中获取数据。

目前,这是使用部分视图完成的,并通过模型参数传递了适当的数据,例如:

@Html.Partial("UserInfo", this.Model.CurrentUser);
@Html.Partial("UserInfo", reply.PostedBy);

等等。这一切都很好。

我最近遇到了一个需求,感觉像是它对该模型有一定的局限性-它将涉及大量局部视图,每个局部视图中都有少量的HTML,嵌套了无数次。页面解析时间似乎开始有点失控,我怀疑搜索和反映局部视图的数量可能与此有关。

请注意:我假设仍然应该避免重复相同的HTML。我可以通过在一些更高级别的控件中包含HTML副本来简化嵌套,但这使我感到不安,这损害了可维护性。

对于最内层的人来说,创建静态辅助类来生成并返回所需的HTML对我来说似乎更有意义-但是,尽管事实上MVC本身使用Html辅助类来完成,但感觉这与MVC模式背道而驰。

  • 是否可以使用静态帮助器类来生成小的HTML代码段?
  • 静态UserInfo应该去哪里?意见?控制器?别处?

显然,这种方法仍然将helper方法与模型分开,但是由于要使用模型,因此我并没有真正看到它是如何分离的。

静态帮助程序与扩展方法之间的距离很短userInstance.InfoHtml(),它可以以某种方式使用,这似乎使整个方法与将辅助方法添加到模型中非常相似。当然,这是MVC首先想要摆脱的!

请注意:我不是在偷偷摸摸的规则或抱怨!我只想尽可能以“按模式”进行处理。如果要使用很多局部视图,那么我将坚持并尽可能调整性能。

污秽

我相信,有四个常见的解决方案可以根据需要在HTML中重复使用html。

  1. 部分视图(@Html.Partial);
  2. 儿童动作(@Html.Action);
  3. 自定义静态助手(@Html.Whatever@Url.Whatever模型的扩展方法等);
  4. 剃刀助手。@helper

是否可以使用静态帮助器类来生成小的HTML代码段?

使用静态帮助器类生成小的HTML代码段是否绝对可以。我不喜欢将它们作为方法添加到模型的想法,扩展方法还可以。

我想说这两种方法之间的差异主要在于编码风格和个人喜好。我将使用局部视图只是将一个大的视图分解为易用的部分,应用程序真正常见和独立部分(例如小部件或登录框)的子操作,因此我不必在所有视图模型中填充常见事物的数据。对于极小的html片段(表单中的字段),我将使用静态助手或剃刀助手,对于更多代码,将使用静态助手或对于更多html的剃刀助手。

静态UserInfo类应该放在哪里?意见?控制器?别处?

这些东西从模式角度来看属于View。如果您问应该在解决方案中填充哪些文件夹,我会为它们推荐一个特殊的文件夹(也许HtmlHelpers)。共享的剃刀助手在App_Code文件夹中可能存在限制

我认为以下问题将为您提供更多有关如何选择它们的信息:

  1. 在ASP.NET MVC中使用Razor创建可重用的HTML视图组件;
  2. 如何在ASP.NET MVC中创建可重用的控件;
  3. 如何创建具有动态内容的可重用的HTML ;
  4. ASP.NET MVC:Razor @helper与HtmlHelper的扩展方法-哪个是首选?

更新

新的ASP.NET MVC中可能有第五种解决方案:查看组件据我阅读,您可以使用它们代替子操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

辅助方法生成

来自分类Dev

小代码段的向量化

来自分类Dev

有什么方法可以将HTML代码段与django代码段集成在一起?

来自分类Dev

为什么Bootstrap列在这个小的HTML / CSS代码段中不起作用?

来自分类Dev

漂亮的HTML代码段输出

来自分类Dev

Sublime Doctype HTML代码段

来自分类Dev

Sublime Doctype HTML代码段

来自分类Dev

TT生成器中的辅助方法

来自分类Dev

自动生成HTML代码

来自分类Dev

使用辅助方法将html插入文档

来自分类Dev

在Rails视图中重复的HTML代码段

来自分类Dev

使用AWK解析HTML代码段

来自分类Dev

将代码段转换为HTML页面

来自分类Dev

使用JavaScript注入任意HTML代码段

来自分类Dev

Atom HTML代码段不起作用

来自分类Dev

编辑HTML代码段建议VSCode

来自分类Dev

将代码段转换为HTML页面

来自分类Dev

生成<ul>样式的面包屑丰富的代码段

来自分类Dev

如何生成编译后的代码段错误的java吗?

来自分类Dev

使用代码段和指令指针生成指令的地址

来自分类Dev

Django / JavaScript:生成HTML代码

来自分类Dev

辅助函数代码python

来自分类Dev

代码辅助-Sencha Touch

来自分类Dev

将超长html代码段注入到单个页面应用程序中的最佳方法是什么?

来自分类Dev

将超长html代码段注入到单个页面应用程序中的最佳方法是什么?

来自分类Dev

如何使用&不使用html选项调用辅助方法

来自分类Dev

如何将这个简单的javascript正确组合到这个小的php代码段中?

来自分类Dev

如何使用Jsoup从HTML页面检索代码段?

来自分类Dev

将一段html代码解析为XDocument?