Я написал за кодом. , но Viewbag.message покажет null в предупреждающем сообщении .myvar - это переменная. Я использовал точку останова, myvar будет установлен на Viewbag.message правильно. но в нём будет показано значение null.Viewbag is null in alert
<script src="~/Scripts/jquery-1.7.1.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
@{string myvar = ViewBag.AlertMessage;}
@using (Ajax.BeginForm("action", "controller", new AjaxOptions { HttpMethod = "Post", OnSuccess = "Messsage" }))
{
<script type="text/javascript">
function Messsage() {
alert('@ViewBag.AlertMessage'); //infact, it shows alert('');
}
</script>
Я бы взять на себя вызов Ajax из BeginForm расчищает ViewBag для данного конкретного вида или иметь его внутри тега формы также может быть очистка его значения. Что произойдет, если вы вызываете предупреждение («@ myvar»); вместо? Кроме того, попробуйте переместить JavaScript за пределами Ajax.BeginForm – Tommy