1

您好我正在尝试找到一种使用 HAML 为某些标签创建别名的方法。

例如。HAML 足够灵活,可以获取此 HAML 标记:

%asp:TextBox#txtName/

呈现为

<asp:TextBox id="txtName" />

同时,asp.net 中的所有服务器端标签都需要

runat="server" 

属性。

第一:如何让 HAML 将这个必需的属性写给我?

Seconde:使用 HAML 用 asp.net 标签组织我的直播是愚蠢的吗?

它不仅仅是关于 runat="server" 属性,它更像是一个清晰而有组织的路径来编写我的 asp.net 标记。

4

1 回答 1

0

我会使用辅助方法。在红宝石中它会是这样的:

def asp_tag attrs_hash={}
  result = '<asp:TextBox '
  result << 'runat="server" '
  attrs_hash.each {|k,v| result << "#{k}=\"#{v}\"" }
  result << '>'
  result << yield # not necessary if you never have a body in your tag
  result << '</asp:TextBox>'
  result.html_safe # in rails anyways.....
end

并在您的视图中使用它,如下所示:

= asp_tag{id: 'txtName'}
  .moreStuff
    teh awesome

应该呈现

<asp:TextBox id="txtName" runat="server">
  <div class="moreStuff>
    teh awesome
  </div>
</asp:TextBox>

由于您在微软环境中,因此其中一些或大部分可能会或可能不会起作用。ruby 方法可以用你运行 haml 的任何语言替换。

另一种选择是使用部分。我使被调用的代码更好,但调用更糟。我倾向于喜欢从视野中隐藏丑陋。

于 2013-10-18T14:27:07.080 回答