Лично я бы пошел с AJAX.
Если вы не можете переключиться на @Ajax...
помощников, я предлагаю вам добавить пару свойств в вашу модель
public bool TriggerOnLoad { get; set; }
public string TriggerOnLoadMessage { get; set: }
Изменить свойпредставление для строго типизированной модели через
@using MyModel
Перед возвратом представления, в случае успешного создания, сделайте что-то вроде
MyModel model = new MyModel();
model.TriggerOnLoad = true;
model.TriggerOnLoadMessage = "Object successfully created!";
return View ("Add", model);
, затем, по вашему мнению, добавьте
@{
if (model.TriggerOnLoad) {
<text>
<script type="text/javascript">
alert('@Model.TriggerOnLoadMessage');
</script>
</text>
}
}
Конечно, внутри тега вы можете делать все, что захотите, событие объявляет функцию готовности jQuery:
$(document).ready(function () {
alert('@Model.TriggerOnLoadMessage');
});
Пожалуйста, не забудьте сбросить свойства модели при успешном оповещении о выбросе.
Еще одна приятная вещь в MVC заключается в том, что вы можете фактически определить EditorTemplate для всего этого, а затем использовать его в своем представлении с помощью:
@Html.EditorFor (m => m.TriggerOnLoadMessage)
Но в случае, если вы хотите создать такую вещь, возможно,Лучше определить свой собственный класс C #:
class ClientMessageNotification {
public bool TriggerOnLoad { get; set; }
public string TriggerOnLoadMessage { get; set: }
}
и добавить свойство ClientMessageNotification
в вашу модель.Затем напишите EditorTemplate / DisplayTemplate для класса ClientMessageNotification
, и все готово.Хороший, чистый и многоразовый.