为什么razor不能产生预期的输出?

为什么razor不能产生预期的输出?,razor,Razor,并生成以下输出: Id: "5ef15ae7-7e34-4736-98cd-8c472f41869f", Name: "Administrators", Selected: false Id: "c11fa932-282a-4273-9cc4-ab181aca5d7a" Name: "Users", Selected: true Id: "c16f8cad-bc32-4539-b2e7-ad82726946b6" Name: "Developers", Selected

并生成以下输出:

Id: "5ef15ae7-7e34-4736-98cd-8c472f41869f", Name: "Administrators", Selected: false 
Id: "c11fa932-282a-4273-9cc4-ab181aca5d7a"  Name: "Users",      Selected: true 
Id: "c16f8cad-bc32-4539-b2e7-ad82726946b6"  Name: "Developers",     Selected: false

管理员
使用者
开发者
您会注意到=“”的第一个标签没有值,但当我运行调试器时,该属性有一个值。对发生的事情有什么想法吗


更新:实际问题似乎是以“5”开头的第一个id。如果我用一个角色替换它,一切都会正常工作。奇怪的虫子。我希望我知道在哪里报告这一点。

也许razor认为它正在生成一个HTML4或更旧的页面?在HTML4中,id不能以数字开头;它必须是字母字符。有关有效HTML id值的讨论,请参阅。在那之后,我想我们正在研究Razor是如何处理这些规则的。

我在ILSpy中探讨了这个方法。它使用第一个参数从viewdata获取模型元数据。这令人困惑。
Id: "5ef15ae7-7e34-4736-98cd-8c472f41869f", Name: "Administrators", Selected: false 
Id: "c11fa932-282a-4273-9cc4-ab181aca5d7a"  Name: "Users",      Selected: true 
Id: "c16f8cad-bc32-4539-b2e7-ad82726946b6"  Name: "Developers",     Selected: false
    <div>
        <label for="">Administrators</label>
        <input id="5ef15ae7-7e34-4736-98cd-8c472f41869f" name="5ef15ae7-7e34-4736-98cd-8c472f41869f" type="checkbox" value="true" /><input name="5ef15ae7-7e34-4736-98cd-8c472f41869f" type="hidden" value="false" />
    </div>
    <div>
        <label for="c11fa932-282a-4273-9cc4-ab181aca5d7a">Users</label>
        <input checked="checked" id="c11fa932-282a-4273-9cc4-ab181aca5d7a" name="c11fa932-282a-4273-9cc4-ab181aca5d7a" type="checkbox" value="true" /><input name="c11fa932-282a-4273-9cc4-ab181aca5d7a" type="hidden" value="false" />
    </div>
    <div>
        <label for="c16f8cad-bc32-4539-b2e7-ad82726946b6">Developers</label>
        <input id="c16f8cad-bc32-4539-b2e7-ad82726946b6" name="c16f8cad-bc32-4539-b2e7-ad82726946b6" type="checkbox" value="true" /><input name="c16f8cad-bc32-4539-b2e7-ad82726946b6" type="hidden" value="false" />
    </div>