Asp.net mvc 4 具有条件数据属性的奇怪行为

Asp.net mvc 4 具有条件数据属性的奇怪行为,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我在ASP.NETMVC4中遇到了一些奇怪的行为 根据viewmodel中的一些信息,我尝试设置一些条件属性,如下所示: 这修复了显示的我的数据主属性,但不知何故使我的禁用和选中属性随后显示为空 我现在的第二个问题是什么导致了这种行为?据我所知,我的代码中没有语法上的奇怪之处 如果有人知道razor为什么会这样做,请回复 PS:最后,我通过将我的数据主属性放置在输入元素的末尾来“修复”事情,使一切按预期进行。来自文件HtmlMarkupParser.Block.cs中的: private v

我在ASP.NETMVC4中遇到了一些奇怪的行为

根据viewmodel中的一些信息,我尝试设置一些条件属性,如下所示:

这修复了显示的我的
数据主属性
,但不知何故使我的
禁用
选中
属性随后显示为空

我现在的第二个问题是什么导致了这种行为?据我所知,我的代码中没有语法上的奇怪之处

如果有人知道razor为什么会这样做,请回复

PS:最后,我通过将我的
数据主属性
放置在输入元素的末尾来“修复”事情,使一切按预期进行。

来自文件
HtmlMarkupParser.Block.cs中的:

 private void AttributePrefix(IEnumerable<HtmlSymbol> whitespace, IEnumerable<HtmlSymbol> nameSymbols)
 {
     // First, determine if this is a 'data-' attribute (since those can't use conditional attributes)
     LocationTagged<string> name = nameSymbols.GetContent(Span.Start);
     bool attributeCanBeConditional = !name.Value.StartsWith("data-", StringComparison.OrdinalIgnoreCase);
     ...
 }
private void AttributePrefix(IEnumerable whitespace,IEnumerable nameSymbols)
{
//首先,确定这是否是“数据-”属性(因为这些属性不能使用条件属性)
LocationTagged name=nameSymbols.GetContent(Span.Start);
bool attributeCanBeConditional=!name.Value.StartsWith(“数据-”,StringComparison.OrdinalIgnoreCase);
...
}
我不知道他们为什么这么做,但这似乎是故意的