如何在asp.net mvc中提供成功消息?
解决方法
如果您在不同于ViewData的页面上显示的消息将无法帮助您,因为它会在每个请求中重新初始化.另一方面,TempData可以存储两个请求的数据.以下是一个例子:
public ActionResult SomeAction(SomeModel someModel) { if (ModelState.IsValid) { //do something TempData["Success"] = "Success message text."; return RedirectToAction("Index"); } else { ViewData["Error"] = "Error message text."; return View(someModel); } }
如果阻塞,你必须使用TempData,因为你正在重定向(另一个请求),但在其他的内部你可以使用ViewData.
在内部视图中,您可以有这样的东西:
@if (ViewData["Error"] != null) { <div class="red"> <p><strong>Error:</strong> @ViewData["Error"].ToString()</p> </div> } @if (TempData["Success"] != null) { <div class="green"> <p><strong>Success:</strong> @TempData["Success"].ToString()</p> </div> }