В настоящее время у меня есть следующий код, предназначенный для проверки с пользователем, если они уверены, что хотят опубликовать все события за месяц:
@{
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)"
но не повезло. Любые советы по наилучшему способу сделать это?
Вы действительно спрашиваете, как объединить вашу переменную message
в строковый литерал "return..."
.
Вы можете сделать это с помощью обычной конкатенации строк на стороне сервера.
Однако это создаст отверстие XSS, если сообщение содержит цитату.
Вы должны вызвать HttpUtility.JavaScriptStringEncode()
для вызова специальных символов в сообщении.