如何在控制器中显示警报消息

Sal*_*oni 8 model-view-controller asp.net-mvc asp.net-mvc-2

我正在使用一个在数据库中插入值的控制器.我想在值成功插入数据库时​​显示来自控制器的警报消息.可能吗.如果是,那怎么样?

Hus*_*vic 18

您可以将结果添加到ViewData.例如:

if (SaveToDbOK)
{
    ViewData["Success"] = "Data was saved successfully.";
   // Do other things or return view
}
Run Code Online (Sandbox Code Playgroud)

在您的视图中,您可以放在任何地方

MVC2:

<% if (ViewData["Success"] != null) { %>
    <div id="successMessage">
        <%: ViewData["Success"] %>
    </div>
<% } %>

MVC3:

@if (ViewData["Success"] != null) {
    <div id="successMessage">
        @ViewData["Success"]
    </div>
@}

我在上一个项目中使用了这种方法,以便从服务器返回的信息不引人注目.检查ViewData ["Success"]或ViewData ["Failure"]是否在Master页面中完成,div使用CSS格式化,jQuery代码用于在5秒后隐藏通知.

问候,

Huske


小智 5

public ActionResult UploadPropertyImage()
{
    // Business logic....
    return Content("<script language='javascript' type='text/javascript'>alert('Save Successfully');</script>");
}
Run Code Online (Sandbox Code Playgroud)


mel*_*aos 4

基本上,这取决于您如何将值插入数据库,因为您需要一种方法来告诉您插入是否成功。现在有几种方法可以做到这一点,linq/实体框架/sql/等。

然后,在知道插入是否发生后,您可以为变量分配一个值,然后从代码/aspx 中检查该值并执行简单的警报。

<script type="text/javascript">
//i'm using jquery ready event which will call the javascript chunk after the page has completed loading
$(document).ready(function(){
//assuming that your variable name from the code behind is bInsertSuccess
var bSuccess = "<%= bInsertSuccess %>";
if(bSuccess){
    alert("Successfully Inserted");
}
});
</script>
Run Code Online (Sandbox Code Playgroud)