我在一个页面上有2个部分。我们将页面称为index.cshtml。
第一部分是“搜索条件”,第二部分是“搜索结果”
现在,我已经将搜索条件部分和搜索结果部分创建为部分视图,并在index.cshtml的底部添加了一个按钮,该按钮获取搜索结果并调用名为“搜索”的javascript函数。 / p>
此函数执行搜索,也就是说它接受搜索条件输入并将其作为参数打包到jQuery.get($ .get)方法调用中。
此调用然后从SearchResultsController(SearchCriteria myCriteria)读取响应,并使用$ .html()替换搜索结果局部视图中的搜索结果。
问题是,这是最好的方法吗?或者在MVC脚手架中有一种方法,我可以在没有手动滚动我自己的javascript或jquery或其他任何客户端代码味道的情况下完成它。
我想要做的就是 - 你点击A页上的一个按钮,从局部视图B获取输入,然后将该输入传递给存储过程,并用过程结果更新视图C的内容,无需刷新整页。就这么简单。
需要最少手动代码的其他方法可以实现部分视图更新吗?任何代码链接?
答案 0 :(得分:2)
首先,请不要将jQuery与JavaScript混淆。 jQuery是一个基于JavaScript构建的框架,可以使某些事情更容易,例如发送AJAX请求,并且默认情况下是跨浏览器。所以,是的,您可以在没有 jQuery 的情况下进行异步更新,但不能没有 JavaScript 。
也就是说,对于使用部分视图的新开发人员来说,这似乎是一个常见的误解。部分视图仅仅是一个方便的服务器端,旨在允许您在多个视图之间共享类似的视图代码。一旦您的页面呈现给客户端,您使用部分视图的事实就不再重要了。如果要在不启动页面刷新的情况下更新页面上的内容,则必须提交AJAX请求以获取要显示的新数据(JSON,XML等)或HTML,然后使用JavaScript,使用该响应呈现与页面不同的内容。同样,这些都与部分视图无关。
答案 1 :(得分:0)
您认为我所描述的方法是更新结果的最佳/最干净/最有效的方法,并且是使用部分视图的良好实现。如果你希望更新是异步的,你将不得不使用某种形式的javascript,但它不一定是jQuery。