2014-02-19 63 views
-1

我是MVC的新手,我试图掌握在成功或失败后向用户展示消息的方法,例如表单。假设我有一个像下面这样的帖子功能,我的目标是呈现一个局部视图,但显然这并不像我认为的那样工作。关于如何在成功提交表单后显示部分视图的指针?当像下面的代码那样做时,我当然会重定向到部分视图,而不是仅仅在当前视图上显示它们,而这正是我想要的。成功显示成功消息

[HttpPost] 
    public ActionResult Test(bool succeeded) 
    { 
     if (succeeded) 
     { 
      ViewBag.SuccessMessage = "Success!"; 
      return View("_SuccessMessage"); 
     } 

     else 
     { 
      ViewBag.SuccessMessage = "Error!"; 
      return View("_ErrorMessage"); 
     } 
    } 

回答

1

如果你想留在同一个视图只返回当前视图,并设置一些标志你的模型或动态ViewBag该请求是成功或错误。比在你的视图中,你可以包含基于该标志的_ErrorMessage或_SuccessMessage,并且如果该标志没有设置,则不要改变其中的任何部分。 此外,如果您必须重定向到另一个视图并在那里显示成功/错误,则可以使用TempData集合。

+0

是的,这也是我的想法。它似乎很奇怪绕过布尔值... – vsdev

+1

你可以传递你的局部视图名称并在RenderPartial方法中使用它。因此,如果没有局部视图名称,则不要渲染任何东西,否则只需调用RenderPartial(ViewBag.StatusMessageView)。 – milagvoniduak