Использование переменной в форме отправить подтверждающее сообщение

0

В настоящее время у меня есть следующий код, предназначенный для проверки с пользователем, если они уверены, что хотят опубликовать все события за месяц:

@{
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
    Вы должны понимать разницу между кодом на стороне сервера и кодом на стороне клиента. Прочитайте сгенерированный источник.
Теги:
razor

1 ответ

1

Вы действительно спрашиваете, как объединить вашу переменную message в строковый литерал "return...".
Вы можете сделать это с помощью обычной конкатенации строк на стороне сервера.

Однако это создаст отверстие XSS, если сообщение содержит цитату.
Вы должны вызвать HttpUtility.JavaScriptStringEncode() для вызова специальных символов в сообщении.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню