代码之家  ›  专栏  ›  技术社区  ›  djdd87

为什么没有智慧ASP.NetMVC2.0在为JavaScript分配模型值时?

  •  8
  • djdd87  · 技术社区  · 16 年前

    我正在尝试将一些模型属性添加到我的内容页内的JavaScript中:

    $(document).ready(function () {
        createPager(1, <%=Model.TotalPages %>);
        createUnprocessedPager(1, <%=Model.TotalUnprocessedPages %>);
    });
    

    有人知道这是不是故意的吗?您不打算将模型属性与JavaScript结合起来吗?或者这是虫子?

    这和预期的一样。然而,我没有任何智慧的感觉 <% ... %> 在实际编写代码时使用标记。如果我在 <script> 标签,那么就没有智能感知了。如果我直接在标签下面 </script> <% Model.... %> 然后 ,我又有了理智。

    更新:22/10/2010

    Scott Guthrie's latest blog post 而且,随着即将发布的ASP.NetMVC 3(可能也适用于测试版):

    智能化与色彩化 Razor文件尚未启用 但几周后你就看到了 它将支持完整的代码 以及Razor文件中的C#/VB代码。

    2 回复  |  直到 15 年前
        1
  •  1
  •   John Egbert    15 年前

    您将在视图中的引号“”之类的属性中释放Intellisense。

    <input type="text" value="<%= DateTime.Today.ToShortDateString() %>" />
    

    或者如果它出现在Javascript块中。

    <script type="text/javascript">
        <%= DateTime.Today.ToShortDateString() %>
        </script>
    

    我认为在这些场景中应该有智能感知,所以我想说这是一个bug,希望visualstudio将来的更新能够解决这个问题。

        2
  •  5
  •   Yakimych    16 年前

    <input type="hidden" id="valTotalPages" value="<%=Model.TotalPages %>" />
    <input type="hidden" id="valTotalUnprocessedPages" value="<%=Model.TotalUnprocessedPages %>" />
    
    ... 
    
    // in js
    $(document).ready(function () {
        createPager(1, $("#valTotalPages").val());
        createUnprocessedPager(1, $("#valTotalUnprocessedPages").val());
    });
    

    因此,缺少语法突出显示和智能感知可能是一个bug,但也可能是阻止某些代码模式的一种方式。