我目前有以下代码,旨在与用户核实他们是否确定要在一个月内发布所有活动:
@{
var message = "This publish all events in" + MVC.Events.PublishMonthParams.month.ToString();
}
@using (Html.BeginForm(MVC.Events.PublishMonth(), FormMethod.Post, new { id = "publish-month" onsubmit = "return confirm('Are you sure?')" }))
{
@Html.Hidden(MVC.Events.PublishMonthParams.month, DateTime.Now, new { id = "month" })
@Html.SubmitButton(Strings.PublishAll)
}
但我希望能够显示我的“消息”变量来代替字符串“你确定吗?”。但是,我很难让cshtml识别变量。我尝试过这样的事情:
onsubmit = "return confirm(message)"
onsubmit = "return confirm('message')"
onsubmit = "return confirm(@message)"
但没有运气。有关最佳方法的建议吗?
答案 0 :(得分:1)
您实际上是在询问如何将message
变量连接到"return ..."
字符串文字。
您可以使用常规服务器端字符串连接来完成此操作。
但是,如果邮件有引号,这将创建一个XSS漏洞
您应该调用HttpUtility.JavaScriptStringEncode()
来转义消息中的特殊字符。