【问题标题】:How to avoid string corruption on formatting razor views如何在格式化剃刀视图时避免字符串损坏
【发布时间】:2023-04-05 19:33:01
【问题描述】:

在 Visual Studio Express For Web 2012 中,如果剃刀视图已格式化,格式化程序会在末尾添加额外的空格 JavaScript 字符串。这会导致传递无效数据。

格式化前:

@if (!(Model.Entity is Palk) && Model.Entity.CanInsert && !Model.IsNew())
{
    <input type="button" id="add_grid_top" class='button' value='@I("Lisa")'
        title='@(I("Lisa dokument") + " (Ctrl+N)")'
        onclick="javascript:replaceTab( 'Detail?' +$.param({ _entity:'@Model.FormName',
_vmnr: @Model.Vmnr }))" />
}

按 Ctrl+K D 后:

@if (!(Model.Entity is Palk) && Model.Entity.CanInsert && !Model.IsNew())
{
    <input type="button" id="add_grid_top" class='button' value='@I("Lisa")'
        title='@(I("Lisa dokument") + " (Ctrl+N)")'
        onclick="javascript:replaceTab( 'Detail?' +$.param({ _entity:'@Model.FormName        ',
_vmnr: @Model.Vmnr    }))" />
}

注意字符串

'@Model.FormName'

被格式化为

'@Model.FormName        '

这会导致将无效数据传递给控制器​​。 如何禁用这种格式?

使用 ASP.NET MVC3、C#、jquery 和 Microsoft Visual Studio Express For Web 2012。

更新

我试过了

工具/选项/文本编辑器/HTML/选项卡设置,但问题仍然存在。

在选项卡窗口中缩进不会改变行为。 如果选择保留选项卡,则会在 FormName 之后插入两个选项卡。 如果选择插入空格,则在 FormName 后面插入 8 个空格。

我还取消了格式选项卡中的一些选项,但这不会导致任何更改。 如何解决这个问题?

【问题讨论】:

  • 尝试使用大括号:'@(Model.FormName)'
  • 已尝试,但格式为 '@(Model.FormName) ' - 仍添加尾随空格。所以这并不能解决问题。

标签: c# asp.net-mvc-3 visual-studio razor code-formatting


【解决方案1】:

进入选项并将制表符更改为等于 4 个空格。我相信制表符是你的问题。

【讨论】:

  • 如果你是对的,那只会在最后给 OP 4 个空格,而不是 8 个。谁在他们的头脑中将缩进设置为八个字符?我不相信这一点。
  • @DavidH 此设置已经存在。我用附加信息更新了问题。如何解决这个问题?
  • 嗯,在那种情况下,我不确定你是否可以,很遗憾。
猜你喜欢
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2020-07-22
  • 1970-01-01
  • 2012-06-17
相关资源
最近更新 更多