Visual Studio 2015的最新版本使我们的整个cshtml标记处于非常脆弱的状态。很多时候,我们的属性值超出了可用的宽度,我们需要将属性分成多行,以使代码更具可读性。
示例:wide data-bind
<div data-bind="someBinding: { hasErrors: bindingObject.HasErrors(duration), hasWarnings: bindingObject.HasWarnings(duration), parameterKey: bindingObject.SelectedObjectKey }, anotherBinding: value, anotherBinding2: value2, AndSoOn: yaddayadda.the.point.is.this.can.get.really.long">
回到VS 2010/2013,如果我们开始将回车符放在属性值中以便将其分解,设计师通常不会再适当地解析html,并且此后的DOM元素将不再有效...例如a破桌子。
因此我们发现通过将属性值封装在@(“...”)中实际上可以让设计人员顺利运行。
示例:使用@()属性绑定
<div data-bind="@("someBinding: { " +
"hasErrors: bindingObject.HasErrors(duration), " +
"hasWarnings: bindingObject.HasWarnings(duration), " +
"parameterKey: bindingObject.SelectedObjectKey }, " +
"anotherBinding: value, " +
"anotherBinding2: value2, " +
"AndSoOn: yaddayadda.the.point.is.this.can.get.really.long")">
好吧,这里的好消息是IDE甚至可以帮助扩展这个字符串,当页面重新格式化时,它会很高兴并且DOM很好。服务器将采用这个C#字符串并将其渲染为生产中的单行,并且一切都很好......
直到我们升级。 VS2015似乎很讨厌这个,但原因完全不同。现在,它整个事情都是曲折的,工具提示上写着“遗失属性名称”。当页面重新格式化时,它会破坏所有内容......
所以我在这里走在玻璃上。这是某种错误还是有答案,因为我们有一个很大的代码库,不想重构这种属性格式。
思想?
答案 0 :(得分:2)
Visual Studio 2015 Update 1包含解决此问题的方法。