首页 > 解决方案 > 在带有 Visual Studio 2019 的 Razor Pages 中,编辑标签属性将打乱所有标签助手属性值

问题描述

我正在使用 ASP.NET Core 2.2 制作一个 Web 应用程序,并且第一次或多或少地尝试了 Razor Pages。当使用“asp-for”属性将 HTML 输入绑定到 PageModel 属性时,一切正常,但是当编辑脚本中任何 HTML 元素中的任何属性时,定义了“asp-for”属性,除了我正在编辑的元素之外,所有其他元素的所有“asp-for”值都被打乱/清除。

我正在使用最新版本的 Visual Studio 2019 社区版,并且所有扩展都是最新的。ASP.NET Core 2.2 和所有包含的包都是它们各自最新的稳定版本。

我已经尝试一一禁用所有扩展,每次都重新启动应用程序以查看其中一个是否会导致任何奇怪的行为-尽管我一开始并没有使用很多,主要是 GitHub 集成和“保存时格式化”此时此刻。

我还尝试过查看首选项并取消选中 HTML 和 C# 的许多验证选项,以及诸如新属性的自动引用和右括号插入之类的东西……基本上,任何我认为可能产生影响的东西。没有任何效果。

一个例子是这样的:

<div>
    <table>
        <tr>
            <td>Entry ID:</td>
            <td><input type="text" asp-for="EntryID" /></td>
        </tr>
        <tr>
            <td>Entry Name:</td>
            <td><input type="text" asp-for="EntryName" /></td>
        </tr>
    </table>
</div>

当编辑带有asp-for的任何元素的任何属性时,其他标签的asp-for值将被打乱。当我使用退格键或删除键时都会发生这种情况,因此它似乎与键盘快捷键无关。

这是该问题的 gif 图像(显然没有足够的声誉来发布图像 - 道歉)。 https://drive.google.com/file/d/1f1gZSvGrQ8ehpTNwKOA2YbCkfLhx_o-M

如果有人有任何想法,我将不胜感激。这真的是在扼杀生产力,我还没有真正想出任何方法来始终解决这个问题 - 通常在一次删除整个属性时(仍然会打乱其他值),我可以点击一次撤消它会撤消加扰而不是删除本身。不过,这不是 100%,所以这只是一个令人头疼的问题。

更新 7/31:我已经按照 Peter B 的建议向微软报告了这一点。如果有人遇到同样的问题并想知道那里的进展,可以在这里获得报告的链接。

标签: visual-studioasp.net-corerazor-pagesvisual-studio-2019

解决方案


您的 gif 显示该id属性正在发生这种情况,但您不应尝试指定 ,id因为 Input Tag Helper 已经为您完成了它:

Input Tag Helper:

* 为属性中指定的表达式名称生成 HTMLid属性。[...]nameasp-for

来源:
https ://docs.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-2.2

我同意这似乎有点奇怪。如果它仍然存在,您可以尝试报告奇怪的行为,如下所述:https://docs.microsoft.com/en-us/visualstudio/ide/how-to-report-a-problem-with-visual-studio?查看=vs-2019


推荐阅读