John resig&# 39;的微模板框架在asp.net网页上抛出错误

本文关键字:net asp 网页 错误 出错 框架 resig John | 更新日期: 2023-09-27 18:04:05

我正在研究John Resig的微模板框架,它很棒,很小,符合我的要求。唯一的问题是语法混淆了ASP。净框架。这是因为

内的任何内容
<%=id%>
<%=(i % 2 == 1 ? " even" : "")%>

表达式语法使用服务器变量求值。有没有人修改过代码来使用ASP.NET?

John resig&# 39;的微模板框架在asp.net网页上抛出错误

只需将解析函数中的<%%>分别更改为<##>。我看过这样做,效果很好。

 // Convert the template into pure JavaScript
    str
      .replace(/['r't'n]/g, " ")
      .split("<#").join("'t")
      .replace(/((^|'#>)[^'t]*)'/g, "$1'r")   //note the extra ' here
      .replace(/'t=(.*?)'#>/g, "',$1,'")      //and here
      .split("'t").join("');")
      .split("#>").join("p.push('")
      .split("'r").join("'''")

…等。

如果因为<%%>而不能工作,那么您可以轻松更改源代码。

    str
      .replace(/['r't'n]/g, " ")
      .split("<%").join("'t") // this % you could change to @ or whatever
      .replace(/((^|%>)[^'t]*)'/g, "$1'r") // same here
      .replace(/'t=(.*?)%>/g, "',$1,'") // same here
      .split("'t").join("');")
      .split("%>").join("p.push('") // same here
      .split("'r").join("'''")

Rick Strahl有一个很好的帖子,他把它修改成ASP。. NET友好(微模板已接近尾声;向下滚动):http://www.west-wind.com/weblog/posts/2008/Oct/13/Client-Templating-with-jQuery

您也可以将%符号替换为JavaScript字符串中百分比符号的unicode表示形式''u0025'。所以你应该写"<%=id%>"而不是字符串"<'u0025=id'u0025>"