作为onclick确认的一部分,Razor中的字符串属性

String attribute in Razor as a part of onclick confirmation

本文关键字:字符串 属性 Razor 一部分 onclick 确认 作为      更新时间:2023-09-26

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

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

其中w是OriginalWork类的实例。如果我查看网站的HTML,confirm中有正确的字符串值,但窗口不会显示,操作会立即调用。如果对int属性执行相同操作,例如Id:

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

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

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

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

尝试使用HttpUtility.HtmlEncode作为w.可以破坏javascript 的awoid转义字符的标题

感谢您的帮助。现在解决了这个问题,我没有意识到w.Title值是作为一个变量来计算的(JavaScript可能试图找到一个类似于Title值的变量),而不是作为字符串值。它的工作原理如下:

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

因此,有一个预期的字符串值Title。