post 操作后视图中未收到 ViewBag
ViewBag is not received in view after post action
当我执行方法时 return 我想在 bootstrap 模式中显示一条错误消息。所以我像这样将 Message 放入 ViewBag 中:
[HttpPost]
public ActionResult EnviarIncrementos(CapturaViewModel model)
{
var res = service.GetService(fechaMovimiento);
ViewBag.Message = res.Error;
return RedirectToAction("Index");
}
因此,当页面重定向到 Index 时,我想获取 ViewBag 并将其显示为模态,如下所示:
<div class="modal" id="myModal" tabindex="-1" role="dialog" data-keyboard="false" data-backdrop="static" style="overflow: hidden">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Agregar nuevo archivo</h4>
</div>
<div class="modal-body col-md-12" id="modal-body">
<div class="row">
<div class="col-md-12">
Resultados
<br />
<div class="" style="height: 150px; overflow: auto; margin-bottom:10px;">
<pre id="resultado">@ViewBag.Message</pre>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<button type="reset" id="limpiar" class="btn btn-default">Limpiar</button>
</div>
<div class="col-md-6 text-right">
<button type="button" class="btn btn-default" data-dismiss="modal" onClick="window.location.reload();">Salir</button>
</div>
</div>
</div>
</div>
</div>
</div>
JS:
<script>
$(document).ready(function () {
if('@ViewBag.Message' != "") {
$("#myModal").modal();
}
});
</script>
但是模态没有出现,消息也没有。我做错了什么?
注意:在chrome调试JS中加载页面时更改为:
$(document).ready(function () {
if('' != "") {
$("#myModal").modal();
}
});
所以@ViewBag
没有收到。为什么会发生?
我认为您不能在重定向到另一个视图时使用 ViewBag,为此您可以使用 TempData 或 Session。
我认为这个参考会有帮助
ViewBag, ViewData and TempData
当我执行方法时 return 我想在 bootstrap 模式中显示一条错误消息。所以我像这样将 Message 放入 ViewBag 中:
[HttpPost]
public ActionResult EnviarIncrementos(CapturaViewModel model)
{
var res = service.GetService(fechaMovimiento);
ViewBag.Message = res.Error;
return RedirectToAction("Index");
}
因此,当页面重定向到 Index 时,我想获取 ViewBag 并将其显示为模态,如下所示:
<div class="modal" id="myModal" tabindex="-1" role="dialog" data-keyboard="false" data-backdrop="static" style="overflow: hidden">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Agregar nuevo archivo</h4>
</div>
<div class="modal-body col-md-12" id="modal-body">
<div class="row">
<div class="col-md-12">
Resultados
<br />
<div class="" style="height: 150px; overflow: auto; margin-bottom:10px;">
<pre id="resultado">@ViewBag.Message</pre>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<button type="reset" id="limpiar" class="btn btn-default">Limpiar</button>
</div>
<div class="col-md-6 text-right">
<button type="button" class="btn btn-default" data-dismiss="modal" onClick="window.location.reload();">Salir</button>
</div>
</div>
</div>
</div>
</div>
</div>
JS:
<script>
$(document).ready(function () {
if('@ViewBag.Message' != "") {
$("#myModal").modal();
}
});
</script>
但是模态没有出现,消息也没有。我做错了什么?
注意:在chrome调试JS中加载页面时更改为:
$(document).ready(function () {
if('' != "") {
$("#myModal").modal();
}
});
所以@ViewBag
没有收到。为什么会发生?
我认为您不能在重定向到另一个视图时使用 ViewBag,为此您可以使用 TempData 或 Session。 我认为这个参考会有帮助
ViewBag, ViewData and TempData