Crystal Rouse
asked on
Passing Error Message from Controller to ViewBag
Trying to figure out how to get a error message to the View Bag. I have this in my View:
My Controller has both a Get and a Post and I'm not sure how to get the error message to my View in the ViewBag.Message
@if (!string.IsNullOrEmpty(ViewBag.Message))
{
<script type="text/javascript">
swal({
title: "Error",
text: "@ViewBag.Message",
type: "error"
}, function () {
url = '@Url.Action("Index", "Requests")';
window.location.href = url;
});
</script>
}
My Controller has both a Get and a Post and I'm not sure how to get the error message to my View in the ViewBag.Message
[HttpGet]
public ActionResult Index()
{
ViewBag.Message = String.Empty;
if (!String.IsNullOrEmpty(HttpContext.Session["Error"]?.ToString()))
{
ViewBag.Message = HttpContext.Session["Error"].ToString();
HttpContext.Session.Remove("Error");
}
return View();
}
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file, string Name)
{
var result = new { Success = "", Message = "" };
try
{
string pdfTemplate = "NewRequest.pdf";
byte[] pdfbytes = null;
BinaryReader rdr = new BinaryReader(file.InputStream);
pdfbytes = rdr.ReadBytes((int)file.ContentLength);
PdfReader reader = new PdfReader(pdfbytes);
string t = Name.Trim().Length == 0 ? null : Name;
var fields = reader.AcroFields.Fields;
var RequestID = reader.AcroFields.GetField("requestId");
var OpenDate = reader.AcroFields.GetField("openDate");
var Org = reader.AcroFields.GetField("organization");
var NeedDate = reader.AcroFields.GetField("needDate");
var FirstName = reader.AcroFields.GetField("firstName");
var LastName = reader.AcroFields.GetField("lastName");
.....
tbl_Request request = new tbl_Request()
{
addedDate = DateTime.Now,
title = t,
requestId = RequestID,
openDate = Convert.ToDateTime(OpenDate),
organization = Org,
needDate = Convert.ToDateTime(NeedDate),
firstName = FirstName,
lastName = LastName
..........
};
myDB.tbl_Request.Add(request);
myDB.SaveChanges();
}
catch (Exception ex)
{
Utility util = new Utility();
string error = util.innerExcep(ex);
result = new { Success = "False", Message = error };
return RedirectToAction("Index", "Upload", new { Result = result });
}
return RedirectToAction("Index", "Requests", new { });
}
ASKER
Can you please give an example of how to use it in the View?
That's line 1 of your first code snippet.
ASKER
I tried setting ViewBag.Message = "Test" in the controller. I get nothing.
I'm not doing something right here.
I'm not doing something right here.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you so much for the sample code!
Open in new window