【问题标题】:Display Messages in ASP.NET MVC 3在 ASP.NET MVC 3 中显示消息
【发布时间】:2011-05-31 08:04:29
【问题描述】:

我正在为我的网站使用 MVC 3 Razor。我的要求是我想在视图本身上向用户显示请求成功/失败的友好消息,不想将用户重定向到另一个视图。我希望我可以自定义显示,例如带有一些成功图像的绿色和用于失败和相应图像的红色。

最好的方法是什么?

【问题讨论】:

  • 有点不具体。你已经拥有了什么?
  • 我对代码应该在 哪里 的最佳实践感兴趣。例如,您可以从您的操作方法 (return this.JavaScript(@"jQuery('#foo').fadeIn(2000).delay(10000).fadeOut(5000);");) 返回一个 JavaScriptResult,或者您可以使用来自 AJAX 请求的事件。但最终你需要在某处显示和隐藏消息的代码。代码有点特定于视图,但是在视图中嵌入 JavaScript 似乎混合了控制器和视图的职责......也许你应该有一个全局 JS 文件,其中包含一个非常具体的函数或方法来调用这个视图......?

标签: asp.net-mvc-3


【解决方案1】:

听起来您想知道基于用户输入的请求是失败还是成功。如果您将数据发布到服务器,您需要考虑使用AjaxHelper BeginForm-方法接受AjaxOptions 的参数。

AjaxOptions 上,您可以指定 OnSuccess 和 OnError 等,当其中之一被调用时,您可以调用相应的 JavaScript。

另一方面,如果这还不够,您可能需要检查来自服务器的数据并根据该数据决定请求是否成功,您需要使用jQuery 及其 ajax 组件。 Here's an example of how to use the jQuery-option:

$.post("/MyController/MyAction", function(data) {
   // Check what data contains.
 });

【讨论】:

  • 好吧,我并不是到处都在使用 Ajax 调用。让我们举一个简单的例子,我有一个注册表单,说数据没有保存到数据库(服务器端调用我的控制器中的操作),基本上表单被回发了。响应是注册失败,因为说电子邮件 ID 已经注册。这是我想向用户展示的。
  • 您可以按照我上面描述的方式执行此操作,也可以使用数据注释。看看这篇文章:asp.net/mvc/tutorials/…你也应该阅读这篇文章weblogs.asp.net/scottgu/archive/2010/01/15/…这应该会让你继续前进,如果你仍然无法解决它,请告诉我!
  • 我相信我的要求是以其他方式被感知的。我只想向我的用户显示“记录添加成功”。
  • 那么您应该使用AjaxOptions 并使用OnSuccess-事件并相应地触发JavaScript。这是一个例子stackoverflow.com/questions/1200960/…
  • @vivek,结果如你所愿吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
相关资源
最近更新 更多