所以我正在为个人MVC项目进行练习。我喜欢使用ajax调用Web服务来更新页面的响应性,而不必回复整个帖子。
我的知识非常有限,我只知道能够用Javascript做到这一点。
然而,从新开发者的角度来看,这有一个问题。假设您需要通过大多数站点对域对象上的任何CRUD操作执行相同的行为。因此导致(再次为新开发人员)缺乏Javascript(调试,单元测试,强类型等)的手持操作。
但是我缺乏知识,有没有办法在MVC中获得同样的行为,而不必使用javascript / ajax调用Web服务来执行所有的crud操作?
注意:在打败我关于Javascript的松散评论之前....我喜欢Javascript,并且可能有办法否定我为你所有的CRUD使用它所做的一些观点为了得到我可能根本不知道的行为而进行的操作。
答案 0 :(得分:1)
根据您的问题,听起来您正在寻找适用于MVC的UpdatePanel。此控件对ASP.NET MVC无效,但您可以通过使用AJAX(Microsoft.Ajax lib或jQuery等)并从控制器返回PartialView来完成类似的功能。在Telerik的网站上有一个不错的tutorial这个技术(只是忽略他们渲染自己的控件的部分 - 你可以渲染几乎任何东西)。
如果这不符合您的需求,我相信,为了在您的页面或页面上实现类似AJAX的行为,必须涉及一定程度的JavaScript。
您可能需要考虑使用像jQuery或MooTools这样的JavaScript框架来包装AJAX调用行为,这样您就必须调用已经测试过的AJAX调用(例如{{ 1}})。那么,您的JavaScript就是更新页面的回调处理程序。
在服务器端,由于您正在使用MVC(我假设它是ASP.NET MVC),您的控制器可能只返回jQuery.ajax()
而不是JsonResult
而只是让您的控制器内部的CRUD操作,而不是创建单独的Web / WCF服务套件。 (您也可以将ActionResult
返回到ActionResult
来电。)
所以我认为你无法摆脱JavaScript,以便在你的网站上实现AJAX风格的行为。您可能不必创建一套Web服务,因为您可以将它们包含在控制器中。
这可能会让你得到你想要的东西。您可能需要在ASP.NET网站上查看tutorial以获得一些额外的见解(但这不会让您进入问题的单元测试部分)。