jquery – ASP.NET MVC和AJAX

前端之家收集整理的这篇文章主要介绍了jquery – ASP.NET MVC和AJAX前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个视图,它由顶部,左侧和底部标题组成,主要内容窗格.假设在 AJAX请求期间,我需要更新顶部,底部和主面板的 HTML(左侧标题应该保持不变).

我想知道什么是最好的方式来完成这个.第一个想法是将主内容面板放在一个部分中,并具有返回PartialView的控制器操作.这将不起作用,因为该操作只返回主窗格的HTML,我无法更新顶部和底部标题.

所以如果我把顶部和底部标题放入自己各自的部分视图中,我需要我的控制器操作来返回多个部分视图.这是否可能,或者我正在做一些完全离开赛道的东西?

我看到有可能是render a partial view to a string,所以我想我可以使用这个技术在操作中返回一个JSON对象,其中3个属性表示我需要更新的3个部分的HTML.但是如果可能的话,这感觉就像是一个非常错误方法.

另一个想法是返回一个仅包含部分数据所需的JSON对象,并使用javascript来构造HTML.但是,在JavaScript中构建UI看起来像是一件困难的工作(主要内容部分使用MvcContrib的GridView,具有分页和排序).

所以我真的很乐意提出什么是最干净的方法来处理这种情况.而且一个自适应的解决方案也是非常棒的:例如,如果用户有的话
javascript禁用它只会重新加载整个页面没有AJAX.

更新:

Andrew Siemer suggested将每个部分放置在自己的部分视图中并执行多个ajax请求.这似乎是一个完美有效的方法,但不幸的是,它不适用于我的场景,因为在我的初始问题描述中遗漏了以下详细信息:顶部标题实际上用于显示主面板中发生的事件的错误/信息消息.所以例如我需要显示错误消息,以防万一获取主面板的模型时抛出异常.因此,只能提出一个请求来更新这两个面板.

解决方法

您可以轻松地将每个部分放置在自己的部分视图中.一旦您的数据被提交/更改,这将允许您为每个视图创建一个jquery请求.然后可以将每个呼叫推入适当的部分.这是非常可行的,听起来像是适当的路径.

我不会指望你的控制器返回多个部分视图,因为这将打破SRP!

更新:随着您的更新…您仍然可以单独获取部分.因为您每次提取都可以返回一个错误块(通过JSON请求),所以您只需要更多的ajax酷.如果有任何错误返回,那么这些错误消息可以显示标题中.或者…如果所有其他请求都报告回来,则可以使头部请求最后出现错误,在这种情况下,每个部分视图可以将错误消息转发到会话变量的错误状态…,然后显示这些消息标题.

选择与每个部分一样的原因在于它是自己的部分,而不是一个请求可能在初始设计中可能不明显.随着每个部分被分开控制,你可以做一些奇特的事情,如独立缓存每个部分,在一个区域内提供更多的频繁更新,等等.

原文链接:https://www.f2er.com/jquery/179795.html

猜你在找的jQuery相关文章