Razor 中的字符串属性作为点击确认的一部分

String attribute in Razor as a part of onclick confirmation

在调用 Url.Action 中指定的操作之前,我需要确认 window。我的代码是:

<a href="@Url.Action("Delete", "OriginalWorks", new {id = w.Id})" 
onclick="return confirm('Do you... '+ @w.Title + '?')"><span></span></a>

其中 w 是 OriginalWork class 的实例。如果我查看站点的 HTML,确认中有正确的字符串值,但 window 没有显示,并且会立即调用操作。如果对 int 属性执行相同的操作,例如 Id:

<a href="@Url.Action("Delete", "OriginalWorks", new {id = w.Id})" 
onclick="return confirm('Do you... '+ @w.Id + '?')"><span></span></a>

它按预期工作,在确认 window 中显示一条消息,其值为 Id。

我试过 Title.toString(),但没有用。我认为它可以与 Html.ActionLink 一起使用,但我想使用它是因为 a 元素中的 span

有什么想法吗?非常感谢。

尝试为您的 w.Title 使用 HttpUtility.HtmlEncode 以避免可能破坏 javascript

的转义字符

感谢您的帮助。现在解决了,我没有意识到 w.Title 值被评估为变量(并且 JavaScript 可能试图找到一个名为 Title 值的变量),而不是字符串值。它只是这样工作的:

<a href="@Url.Action("Delete", "OriginalWorks", new {id = w.Id})" 
onclick="return confirm('Do you... @w.Title?')"><span></span></a>

所以有一个预期的标题字符串值。