【问题标题】:ASP.NET MVC 2 - best implementation of status / update / generic message delivery and JavaScript modal displayASP.NET MVC 2 - 状态/更新/通用消息传递和 JavaScript 模态显示的最佳实现
【发布时间】:2010-10-07 06:23:57
【问题描述】:

对于依赖于许多局部视图并且几乎完全使用 Ajax 进行 POST/GET 的 MVC 2 应用程序,实现这些消息的设置、传递、检索和显示(使用 JavaScript 模式)的最佳方式是什么?

我的表单所有 POST(通过 jQuery $.ajax)到返回部分视图 (html) 的操作,这些视图用于更新 $.ajax 函数的“成功:”部分中的 a。

我希望主视图中的某种机制可以“监听”任何这些部分视图可能正在“传递”的任何消息——例如,通过它们的 ViewData。

谢谢。

编辑:

经过更多搜索,我发现类似的人试图实现与我相同的目标,但没有一个问题有好的答案。 This 最能说明问题。

【问题讨论】:

    标签: asp.net jquery asp.net-mvc-2


    【解决方案1】:

    您的“主视图”无法拥有像您所想的那样的机制,仅仅是因为您要求它了解可能基于可能的用户交互而提供给它的潜在数据。

    我认为@cottsak 想说的是在您的 JS 代码中使用委托函数来处理错误和成功事件。因此,您可以有 100 个 Ajax 请求,但只有 2 个函数实际处理响应。在这些函数中,您必须规范处理响应的方式,这样您就不必为特定表单编写条件。这可能需要对表单进行规范化,使其具有相同的结构和基本功能,并且仅在输入内容上有所不同。

    例如,我在一些处理模态表单的网站中使用“向导”:

    <div class="Wizard">
      <form>
      <!-- Any and all possible content -->
      </form>
    </div>
    

    当然,我所有的表单在它们的实际输入上都有所不同,但它们都是规范化的,因为它们中有专门的元素用于消息传递等。然而,每个表单都由同一个 JS 控制,特殊情况下有一些例外。

    【讨论】:

    • 谢谢亚历克斯。您所描述的与我可能会实施的类似。我当然希望我在项目开始时就开始了,不过……我现在正在考虑回顾大约 25 个部分视图。
    • 不客气,是的,您将不得不再次完成您的工作,但从长远来看,您会更快乐,并为将来扩展更多功能铺平道路遵循已经建立的结构。我花了 2 次重写才真正掌握如何正确地制作我的“向导”,但这是值得的。如果我现在想扩展,我会花 5 到 10 分钟进行标记并完成。
    • 如果有任何帮助,您可以查看我的一个网站,该网站大量使用 www.fthisjob.net 上的“向导”。该站点使用我的“1.0 版”向导,但我已经为它的姊妹站点清理并进一步增强了它们,其中包括以输入描述、错误的视觉队列(行文本颜色和输入边框)的形式改进的可用性变成红色,中间有一个警告图标),并在彼此之间链接相关的“向导”。唉,“2.0 版”没有发布,所以我不能给你演示。
    【解决方案2】:

    您应该查看Dropbox 网络界面。 Get yourself a free account 并使用该界面 10 分钟 - 复制、移动、删除文件。消息传递和验证系统很棒。他们网站上的大部分内容也是 ajax。您想要的用户体验的完美示例。

    至于技术实现,我考虑了一段时间:
    我会在客户端使用代理系统,所有页面 ajax 请求都会通过该代理系统。这样,所有响应都可以在单个函数(/object,无论您如何设计)中进行整理,因此也可以在响应中进行整理。显然响应是关键,这样错误消息和状态消息可以在同一个地方处理并以统一的方式呈现给用户。

    服务器端不会太难。我建议您对那些返回 JSON 或其他 ajax 响应的操作使用 graceful degradation solution,因为它们可以运行(并返回错误/状态消息)without the client having JavaScript enabled

    【讨论】:

    猜你喜欢
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    相关资源
    最近更新 更多