使用集合作为模型的Visual Studio Razor格式化问题

6

我有一个在MVC中用于集合项的显示模板,所以我的cshtml文件的第一行如下:

@model IList<Some.Namespace.ViewModels.MyListItem>

如果我在文件中添加了一些新的HTML,然后执行CTRL + K + D进行自动格式化,它现在会将我的模型全部转换为小写,如下所示:

@model IList<some.namespace.viewmodels.mylistitem>

这是一个非常麻烦的问题,因为自动格式化后需要不断更改大小写以避免破坏html助手。我找到了这个问题,它说这是MVC3的问题。
我正在运行带有MVC5的VS2013 Update 4,但我仍然有这个问题。我在文本编辑器选项中找不到任何更改此行为的选项。
我还使用ReSharper 8.2和Web Essentials 2013 for Update 4。
这是一个已知问题,还是我有某个设置破坏了东西?

1
我使用VS2013更新4,无法复制该问题。我安装了Web Essentials 2013用于更新4,但无法复制该问题。这可能与Resharper有关。我还注意到,有时复制/粘贴代码或注释/取消注释会改变大小写; 我只在HTML元素上注意到过这一点。 - drneel
1
Resharper 倾向于认为它知道得更好(也许确实如此)。如果您转到 工具 -> 选项 -> 环境 -> 键盘 并搜索 Edit.MakeLowercase,则应该能够删除分配的快捷方式。然后搜索 Edit.FormatSelection。或者查看 JetBrains 的这篇文章,了解有关解决键盘冲突的信息。 - user1752532
我也遇到了这个问题,通用模型会被转换为小写:( - Michael Harper
@MichaelHarper 我最终升级到了VS2015和Reshaper 9,现在一切正常了。虽然不是什么解决方案。 - Alex
@Alex 我注意到2015年没有这个问题,这很好! - Michael Harper
1个回答

4
这是你需要做的来修复格式问题。
Views文件夹web.config中,用以下这行覆盖MvcWebRazorHostFactory <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 关闭并重新打开所有cshtml文件。现在文档应该可以正常格式化。我曾在razor页面中遇到智能感知问题,也已经解决。我尝试了这两种方法,并没有出现任何问题。
如果您仍然遇到问题,请告诉我。

1
很高兴找到这个。谢谢!这节省了我很多麻烦。 - Khairul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接