发布后,视图中未收到ViewBag

问题描述 投票:0回答:1

当我执行方法时,它返回一个错误消息,我想在bootstrap模式中显示。所以我把View放在ViewBag中就像这样:

    [HttpPost]
    public ActionResult EnviarIncrementos(CapturaViewModel model)
    {
var res = service.GetService(fechaMovimiento);
 ViewBag.Message = res.Error;
 return RedirectToAction("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">&times;</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 debug JS中的页面加载改为:

       $(document).ready(function () {
            if('' != "") {
       $("#myModal").modal();
     }
});

所以没有收到@ViewBag。为什么会这样?

javascript c# asp.net asp.net-mvc viewbag
1个回答
2
投票

我认为在重定向到另一个视图时你不能使用ViewBag,你可以使用TempData或Session。我认为这个参考会有所帮助

ViewBag, ViewData and TempData

© www.soinside.com 2019 - 2024. All rights reserved.