asp.net-mvc - 将模型值分配给 JavaScript 时,为什么 ASP.Net MVC 2.0 中没有智能感知?

标签 asp.net-mvc visual-studio-2010 asp.net-mvc-2 intellisense

我正在尝试将一些模型属性添加到我的内容页面中的 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.Net MVC 3(可能也适用于测试版),此功能似乎即将推出:

Note: Visual Studio Code/Markup Intellisense and Colorization within Razor files aren’t enabled yet with the Beta earlier this month. You’ll see this show up in a few weeks though – and it will support full code intellisense for HTML, JavaScript, CSS and C#/VB code within Razor files.

最佳答案

我认为也没有语法突出显示。不确定这是错误还是功能,但是 AFAIK,以这种方式组合代码不是一个好习惯。通常内联 javascript 不是一个好的做法,但是如果您使用它,将 Model 属性与其结合,然后决定将脚本提取到单独的 js 文件中,您的代码就会中断。因此,使用 Model 属性填充隐藏字段并使用 jQuery 在 js 中读取它们是很常见的,例如:

<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());
});

因此,缺乏语法高亮和智能感知可能是一个错误,但也可能是阻止某些代码模式的一种方式。

关于asp.net-mvc - 将模型值分配给 JavaScript 时,为什么 ASP.Net MVC 2.0 中没有智能感知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3538062/

相关文章:

html - 多选列表如何与 ASP.NET MVC 中的模型绑定(bind)一起使用?

asp.net-mvc - 自连接表上的 Linq 嵌套选择查询

windows - 如何在 Microsoft Visual Studio 2010 上配置 Glib?

c# - 在 MVC 2 中获取列表框的内容

asp.net-mvc-2 - ASP.NET MVC 的 OData 实现

c# - 如何在linq to sql中批量插入/更新?

c# - Web.Config - 特定文件的 StaticContent ClientCache 设置

asp.net-mvc - MVC 模型有时需要字段

c# - 从程序集中提取文字字符串

visual-studio-2010 - Visual Studio 2010 无法识别正确的源代码管理插件