何时使用剃刀在复合字符串格式中使用引号



这个字符串格式答案解决了我的问题,但没有解释为什么字符串格式中的剃刀语法以以下方式工作......

<button type="button" onclick="wea.open('editDinner', {params: {id: @o.Id }})" class="wea-btn">

工作而不会引起 js 错误,如果@o.Id 是整数类型,但是当更改为 GUID 类型时,则需要在 razor 语法周围使用单引号......

<button type="button" onclick="wea.open('editDinner', {params: {id: '@o.Id' }})" class="wea-btn">

除了@o.Id 周围的单引号外,这是相同的。

此处的 razor 语法是否根据属性类型(int 与 Guid(区别对待? 什么时候应该使用引号,为什么?

在此示例中,是 JavaScript 语法规则规定了引号用法(而不是 Razor 规则(。使用简单的整数可以解析对象;但是 GUID 生成无效的 JavaScript,因此您需要引号。

{ id: 1 }  // ok
{ id: 35aa3122-7d73-4758-ac00-f4150f289767 } // invalid js

最新更新