Asp.net mvc 有没有理由我会使用淘汰MVC而不是淘汰JS?
建议处理一些AJAX发布问题。我读了一些关于它的文章,我发现它是一个包装纸。所以我想知道这两者的真正区别是什么?既然存在,我应该为之烦恼吗?什么时候我会使用一个而不是另一个?淘汰MVC是WebForms的私生子。它通过控制器动作路由所有viewmodel方法,这意味着所有发生的事情都必须跳转到服务器并返回。我无法理解为什么有人会采用类似knockout的框架,它旨在成为客户端MVVM,并强制它为每个函数调用服务器 此外,在服务器上执行这些方法意味着,对于每个函数调用,都需要将整个viewmodel传递给服务器,并返回给客户端。这是难以置信的浪费 使用淘汰MVC意味着为了不必编写javascript而牺牲客户端代码的所有性能优势。WebForms也做了同样的权衡。这不是个好主意。这是一个反模式Asp.net mvc 有没有理由我会使用淘汰MVC而不是淘汰JS?,asp.net-mvc,asp.net-mvc-3,knockout.js,knockout-2.0,knockout-mvc,Asp.net Mvc,Asp.net Mvc 3,Knockout.js,Knockout 2.0,Knockout Mvc,建议处理一些AJAX发布问题。我读了一些关于它的文章,我发现它是一个包装纸。所以我想知道这两者的真正区别是什么?既然存在,我应该为之烦恼吗?什么时候我会使用一个而不是另一个?淘汰MVC是WebForms的私生子。它通过控制器动作路由所有viewmodel方法,这意味着所有发生的事情都必须跳转到服务器并返回。我无法理解为什么有人会采用类似knockout的框架,它旨在成为客户端MVVM,并强制它为每个函数调用服务器 此外,在服务器上执行这些方法意味着,对于每个函数调用,都需要将整个viewmode
如果Knockout MVC明天消亡,web将是一个更好的地方。Knockout.js的美妙之处在于,您可以通过简单地从服务器来回传递JSON来获得应用程序,而无需推送整个视图,而服务器必须将整个视图分块以生成HTML 再次将其放回服务器上似乎非常违反直觉!如果您对此感兴趣,最好首先使用razor语法来完成绑定
我的建议是使用knockout.js进行绑定,以便在客户端而不是服务器上进行绑定,如果这是您的目标的话。如果你想让你的视图在服务器上绑定数据,请使用razor。我觉得Tyrsius的回答有点太消极了。Knockout MVC仍处于早期开发阶段,但从我所看到的情况来看,它有一些优势,并且比Webforms等服务器更轻。Visibly Dependencies完全在客户端上获取句柄,只有在使用函数时才对服务器进行调用。在处理复杂的数据结构时,有时无论如何都需要通过服务器,因此击倒MVC可能是一种节省编写大量Ajax处理的好方法
的确,它总是来回发送整个模型,这会产生一些开销,而不是自己构建。但我不会把它全部注销。特别是当它在将来得到正确的客户端处理以进行复杂的验证时。我在搜索了一些关于淘汰mvc的内容后,发现了这篇文章。虽然我同意浪费网络带宽,但我还是被这一行代码所吸引:
@{
var ko = Html.CreateKnockoutContext();
}
这是一种生成淘汰视图模型的简洁方法。有没有人仅仅为了这个特性而使用淘汰MVC,而没有将所有逻辑移到服务器端 我刚刚遇到了这个问题,有一些非常消极的回答。我要把我的两分钱加起来 我刚刚开始使用KnockoutJS。因为我正在构建ASP.NET MVC应用程序,所以对我来说,使用类似于淘汰MVC的东西似乎是合乎逻辑的。在大多数情况下,这似乎是个好主意。如果我可以使用我所熟悉和喜爱的.Net功能编写javascript和
注释,我就不想花时间在我的页面上
话虽如此。。。是的,目前KMVC存在一些限制。将整个模型发送回服务器是一件大事。所以我所做的就是开始我自己的淘汰赛mvc。目前,这些变化必然是仓促进行的。但我现在有能力:
- 创建子上下文(使用视图模型的完全不同的模型或组件)
- 调用服务器时将模型的选定部分传回
- 期望从呼叫返回的模型与发送的不同
- 围绕ajax调用触发事件
- 支持更多html5输入类型
- 通过头向服务器传递防伪令牌(用于ajax调用)
- 我可能忘了更多