Asp.NET代码渲染块格式在data-bind属性中添加了空格

时间:2015-01-22 14:49:43

标签: asp.net visual-studio knockout.js

我正在使用带有Asp.NET和visual studio的knockout.js(2012年但我在2010年和2013年遇到了同样的问题)。我的代码看起来像这样:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Test.ascx.cs" Inherits="Solution.ascx.Test" %>
<div>
    <span data-bind="value: '<%= String.Empty%>'"></span>
</div>

每次粘贴此代码或按ctrl + k,ctrl + d(格式文件),我会在代码渲染块之后得到那些奇怪的空格。 (在以下代码段中替换为XXXX以获得可见性)

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Test.ascx.cs" Inherits="Solution.ascx.Test" %>
<div>
    <span data-bind="value: '<%= String.Empty%>XXXX'"></span>
</div>

仅在使用“data-bind”标记时才会出现问题。

我尝试在客户端选项&gt;中禁用“缩进内容”文本编辑器&gt; HTML&gt;格式化&gt;标签特定选项&gt; HTML标记&gt;没有运气。有人有解决方案吗?它不仅非常烦人,而且还可以解析这些空间并抛出异常。

1 个答案:

答案 0 :(得分:1)

文本编辑器的格式化不是问题,这是-bind属性的问题。无论出于何种原因,VS都不喜欢这样。自从阅读这个问题以来我一直在浏览互联网,但找不到任何合理的理由。

我确实找到了,这可能是你最好的方法,有人使用MVC遇到了确切的问题:using @data-bind in ASP.NET MVC htmlAttributes throws exception

只需使用JQuery即可将data_bind动态更改为数据绑定(如帖子中所述),您应该很高兴。