2

我在一页上有 2 个部分。我们将页面称为 index.cshtml。

第一部分是“搜索条件”,第二部分是“搜索结果”

现在,我将搜索条件部分和搜索结果部分创建为部分视图,并在 index.cshtml 的底部添加了一个按钮,该按钮获取搜索结果并调用名为“搜索”的 javascript 函数。

该函数执行搜索,也就是说,它接受搜索条件输入并将其作为参数打包到 jQuery.get ($.get) 方法调用中。

然后,此调用从 SearchResultsController(SearchCriteria myCriteria) 读取响应并使用 $.html() 替换搜索结果部分视图中的搜索结果。

问题是,这是最好的方法吗?或者在 MVC 脚手架中是否有一种方法,我可以在不手动滚动我自己的 javascript 或 jquery 或任何其他客户端代码的情况下做到这一点。

我要做的就是 - 您单击页面 A 上的一个按钮,从部分视图 B 获取输入,然后将该输入传递给存储过程,并使用过程结果更新视图 C 的内容,而无需整页刷新。就这么简单。

需要最少手动代码的其他方法可以实现部分视图更新吗?有代码链接吗?

4

2 回答 2

2

首先,请不要将 jQuery 与 JavaScript 混淆。jQuery 是一个基于 JavaScript 构建的框架,可以让某些事情(例如发送 AJAX 请求)更容易并且默认跨浏览器。所以,是的,你可以在没有jQuery的情况下进行异步更新,但不能没有JavaScript

也就是说,对于使用局部视图的新开发人员来说,这似乎是一个常见的误解。部分视图只是一种方便的服务器端,旨在让您在多个视图之间共享相似的视图代码。一旦您的页面呈现给客户端,您使用部分视图的事实就不再重要了。如果您想在不启动页面刷新的情况下更新页面上的某些内容,您必须提交 AJAX 请求以获取一些新数据(JSON、XML 等)或 HTML 以显示,然后也使用 JavaScript,使用该响应来呈现与页面不同的东西。同样,这些都与局部视图无关。

于 2013-08-20T16:12:56.507 回答
0

我认为您描述的方法是更新结果的最佳/最干净/最有效的方法,并且是使用部分视图的良好实现。如果您希望更新是异步的,您将不得不使用某种形式的 javascript,但它不必是 jQuery。

于 2013-08-20T16:10:57.713 回答