将Razor语法变量传递给Html Helper的javascript onclick

时间:2017-06-20 13:01:36

标签: javascript c# html asp.net-mvc razor

尝试渲染页面,并在按钮单击时触发通知。我把它设置为现在只是做一个弹出窗口,因为它是高层的内部应用程序。

有问题的按钮是一个简单的剃​​刀语法html助手,带有onclick事件以返回确认对话框。但是,似乎我无法为此呈现项变量。

@Html.ActionLink("Delete", "Delete", new { id = item.Id },
 new { @class = "btn btn-warning", 
 onclick = "return confirm('WARNING: Delete @item.Id?');" })

这无法呈现item.Id(周围foreach语句的输出,而是输出字符串文字“@ item.Id”

@Html.ActionLink("Delete", "Delete", new { id = item.Id }, 
 new { @class = "btn btn-warning", 
 onclick = "return confirm('WARNING: Delete ' + item.Id + '?');" })

这会渲染变量,但由于它不是javascript变量,因此呈现为“Delete undefined?”

如何在传递到此对话框的javascript之外使用foreach中的变量,以使消息更具描述性。

2 个答案:

答案 0 :(得分:2)

我能够使用string.Format中的C#来解决自己的问题。

@Html.ActionLink("Delete", "Delete", new { id = item.Id }, 
 new { @class = "btn btn-warning", 
 onclick = string.Format("return confirm('WARNING: Delete {0}?');", item.Id) })

答案 1 :(得分:0)

您没有正确关闭字符串。请尝试以下方法:

onclick = "return confirm('WARNING: Delete " + item.Id + "?');"

您的错误是未定义javascript项item.Id,因为您的js脚本中可能未定义item