这个string formatting答案解决了我的问题,但没有解释为什么字符串格式化中的剃刀语法以下列方式工作...
<button type="button" onclick="wea.open('editDinner', {params: {id: @o.Id }})" class="wea-btn">
工作时不会导致js错误IF @ o.Id是整数类型,但是当更改为GUID类型时,需要围绕剃刀语法的单引号...
<button type="button" onclick="wea.open('editDinner', {params: {id: '@o.Id' }})" class="wea-btn">
除了@ o.Id。
周围的单引号外,它们是相同的这里的剃刀语法是否基于属性类型(int vs Guid)进行了不同的处理?什么时候应该使用报价?为什么?
答案 0 :(得分:1)
在这个例子中,它是规定引用用法的JavaScript语法规则(不是Razor规则)。使用简单的整数可以解析对象;但GUID会生成无效的JavaScript,因此您需要引号。
{ id: 1 } // ok
{ id: 35aa3122-7d73-4758-ac00-f4150f289767 } // invalid js