在表单中使用变量提交确认消息

时间:2013-11-08 14:10:21

标签: html razor

我目前有以下代码,旨在与用户核实他们是否确定要在一个月内发布所有活动:

@{
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)"

但没有运气。有关最佳方法的建议吗?

1 个答案:

答案 0 :(得分:1)

您实际上是在询问如何将message变量连接到"return ..."字符串文字。
您可以使用常规服务器端字符串连接来完成此操作。

但是,如果邮件有引号,这将创建一个XSS漏洞 您应该调用HttpUtility.JavaScriptStringEncode()来转义消息中的特殊字符。