gpt4 book ai didi

asp.net - 在 MVC 中,如何确定部分 View 响应是否有效(在客户端)?

转载 作者:行者123 更新时间:2023-12-02 21:15:25 24 4
gpt4 key购买 nike

我是 MVC 新手,所以希望我的问题是直截了当的。我正在考虑这样一个场景:用户提交表单(即部分 View )并接受服务器验证。我想知道提交表单后如何知道客户端(javascript)的验证结果。例如,如果验证失败,我显然希望再次返回带有验证消息集的部分 View ,但如果它通过验证,我可能不一定想返回部分 View 。我可能想返回一个带有消息的 json 对象或隐藏一个 div 或其他东西。我希望能够确定客户端上的验证结果。这样的事情可能吗?或者我可以用不同的方式来解决这个问题吗?

最佳答案

AJAX 的棘手部分是客户端和服务器都必须就在任何情况下从服务器返回的内容达成一致。您有几个选择:

  1. 您的服务器将始终返回 HTML,并且 jQuery 将始终用返回的 HTML 替换编辑器内容。如果模型无效,则返回 PartialView结果。如果模型有效,您将返回 <script>告诉页面需要做什么的标签(例如关闭对话框、重定向到不同的页面等)。当 jQuery 尝试将结果插入 DOM 时,它会自动运行它在结果中找到的任何脚本。
  2. 您的服务器将始终返回一个表示发生情况的 JSON 对象。在这种情况下,您的客户端 JavaScript 代码必须足够复杂才能获取结果并修改页面以匹配。在正常情况下,这意味着您无法利用 MVC 的验证功能。
  3. 与 2 相同,不同之处在于您使用自定义实用程序方法将所需的部分 View 呈现为字符串,并且使整个字符串成为返回的 JSON 的一部分。然后,JavaScript 代码必须足够智能,检查 JSON 是否显示有效或无效结果,如果结果有效,则将编辑器区域的内容替换为作为 JSON 对象的一部分返回的部分 View HTML。回来了。
  4. 与 3 相同,只不过您开发了一种基于事件的架构,其中所有 AJAX 请求始终期望返回一个包含一个或多个“事件”的 JSON 对象。然后,AJAX 代码可以合并为一种方法,将事件传递给事件总线。然后,事件总线将事件信息传递到已“订阅”这些事件的回调中。这样,根据从服务器返回的事件类型,您可以在客户端发生不同的操作。这种策略需要更多的前期工作才能落实到位,但一旦完成,您就可以拥有更大的灵 active ,并且客户端代码变得更加易于维护。

关于asp.net - 在 MVC 中,如何确定部分 View 响应是否有效(在客户端)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8086552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com