0

現在、ユーザーが 1 か月のすべてのイベントを公開するかどうかをユーザーに確認するための次のコードがあります。

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

しかし運がない。これを行うための最良の方法に関するアドバイスはありますか?

4

1 に答える 1

1

message実際には、変数を"return ..."文字列リテラルに連結する方法を尋ねています。
通常のサーバー側の文字列連結でそれを行うことができます。

ただし、メッセージに引用符がある場合、これにより XSS ホールが作成されます。メッセージ内の特殊文字をエスケープするには、
を呼び出す必要があります。HttpUtility.JavaScriptStringEncode()

于 2013-11-08T14:13:19.350 に答える