文章内容
2017/4/24 16:16:19,作 者: 黄兵
ActionResult 如何向前台返回信息
一直困扰我很久的问题,今天终于解决了。
在写代码的时候,如果是ActionResult如何将后台成功或是失败的信息返回到前台,这个问题一直困扰了我很久,前台使用@html.beginform(),没有采用ajax的提交方式,所以返回信息比较困难。
后来看了一个国外的一个程序代码问题终于解决了。
看一下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "ID,Title,AlbumId" )] Photo photo, HttpPostedFileBase file) { if (ModelState.IsValid) { try { TempData[ "Message" ] = "" ; var filename = "" ; if (file != null && file.ContentLength > 0) { Guid gid; gid = Guid.NewGuid(); var extension = Path.GetExtension(file.FileName); filename = gid + extension; var path = Path.Combine(Server.MapPath( "~/Content/PhotoGallery/" + setAlbumName(photo.AlbumId)), filename); var data = new byte [file.ContentLength]; file.InputStream.Read(data, 0, file.ContentLength); using (var sw = new FileStream(path, FileMode.Create)) { sw.Write(data, 0, data.Length); } } photo.ImageName = filename; photo.InsertedDateTime = DateTime.Now; photo.InsertedBy = User.Identity.Name; db.Photos.Add(photo); db.SaveChanges(); TempData[ "Message" ] = "<div class='alert alert-success'><a href='#' class='close' data-dismiss='alert'>×</a><strong>Success!</strong> Successfully Save.</div> " ; } catch (Exception ex) { TempData[ "Message" ] = "<div class='alert alert-danger'><a href='#' class='close' data-dismiss='alert'>× Directory</a><strong> " + ex.ToString() + "</strong> Not found.</div>" ; } return RedirectToAction( "Index" ); } |
可以看到他是通过TempData[
"Message"
]返回信息的,那我们看一下跳转到Index页面的前台页面是如何显示
TempData[
"Message"
]的,代码如下:
@Html.Raw(TempData["Message"])
前台直接显示就可以了。
这个问题终于解决了。有什么问题在下面给我留言。
本文黄兵的个人博客原创,转载请注明出处。
有什么问题请在下面给我留言。
评论列表