我们正在构建一个ASP.NET MVC5网站,它让我们说出某种shoppingCart View功能。在这种情况下,KnockoutJs可以为每个OrderLineItem执行诸如(UnitPrice * Quantity)之类的计算,甚至可以执行购物车总和(每行总计)的总和。
Knockout的客户端Viewmodel包含Shoppingcart的数据,它可以执行ShoppingCart中元素的添加,删除和更新。
在这里,在我们的实际应用程序中,我们让我们说同一个ShoppingCart,但是为了处理客户端,它不像(UnitPrice * Quantity)那么简单...我们在我们的程序中有复杂的存储过程用于此目的的Sqlserver数据库。
所以,我的问题:这可以通过WCF endPoints调用那些storedProcedures吗? (或Web API?)像/ api / GetResultOfCalculation /获取存储过程的结果,这样做 :
$.ajax({
url : "**/api/GetResultOfCalculation/**",
data : ko.ToJSON(self),
content-type : ...
success : function(data) {
// get the results from complex calculations
// encapsulated in stored procedures
// and then bind these results to shoppingCart
// thus giving the end-user an ajax-like responsiveness
}
});
或者,是否有可能通过ajax调用存储过程:
我的意思是,是否可以对调用存储过程dbo.GetCalculationByXandY
的控制器操作进行Ajax调用,然后将其结果存储在服务器端Viewmodel(S-s Vm)中。
然后,这个S-s Vm将序列化为客户端ViewModel(C-s Vm)......刷新ShoppingCart。
我正在尝试使用KnockoutJs在我的MVC视图中进行类似AJAX的响应,避免在每次更新Quantity或在shoppingCart中删除OrderItem时向服务器进行往返。但是,由于我的应用程序必须使用存储过程来执行这些计算,我想知道如何做到这一点。欢迎任何帮助或建议。请注意,只能通过存储过程在c#或javascript中进行计算。