Mvc flash消息作为局部视图

时间:2016-03-02 08:12:22

标签: asp.net-mvc asp.net-mvc-3 razor html-helper flash-message

我使用FlashHelper向用户显示Flash消息,我需要显示部分视图而不是默认的Flash消息。我怎么能这样做或者是否可能?

我需要一个这样的帮手:

Flash.Success("_FlashMessagePartial",model)

或者您建议使用哪个库?

1 个答案:

答案 0 :(得分:0)

你不能这样使用它。如果我理解正确,您希望向用户显示类似通知的内容,并且您不希望刷新页面。正确的答案是你可以做到,但这是不正确的。您的代码看起来一团糟,您将有一个隐藏的通知字段,依此类推。这取决于你想要完成什么。例如: 我在我的布局中使用全局通知,我的剪辑看起来像这样

在布局的顶部 我放置一个if语句来检查TempData中是否存在错误消息

@if(TempData["error"])
{
   // here you can visualize it well styled by some template for example
   <div class="notification-error">@TempData[error]</div>
}
@if(TempData["success"])
{
   // here you can visualize it well styled by some template for example
   <div class="notification-error">@TempData[error]</div>
}

Then in your controller if you have something to say to the user you can
just do what you are doing like:

public ActionResult SomeAction(MyModel model)
{
    if(something is not valid)
    {
       this.TempData["error"] user error
       return this.View(model);
    }
}



That case was if you need some server validation and proper message to the     
user. After that option you have to set a script on your layout that removes
the error and success notifications if they exist on the page loads. 

另一个选项如果你需要在客户端进行一些模型状态验证,你可以查看由viewmodel的属性驱动的js-unobtrusive验证,它会让你在客户端进入服务器之前自动检查。 / p>

第三个选项是,如果您需要其他通知,可以使用名为toastr的JS库。 Examples library url它轻巧且易于使用

希望这个答案正好解释你需要什么。