Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVVM风格的应用程序中是否存在敲除、html和asmx问题_C#_Asp.net_Web Applications_Mvvm_Knockout.js - Fatal编程技术网

C# MVVM风格的应用程序中是否存在敲除、html和asmx问题

C# MVVM风格的应用程序中是否存在敲除、html和asmx问题,c#,asp.net,web-applications,mvvm,knockout.js,C#,Asp.net,Web Applications,Mvvm,Knockout.js,过去我一直在用经典的asp开发web应用程序。我们听说了MVVM样式和knockoutJS。我们认为这可以更好地提高客户机响应时间,并在MVVM中使用了敲除、html(在aspx页面中)和webservice(asmx)编码 在所有的标记中,我们都避免使用aspx控件,并使用带有敲除绑定的html标记。只有在需要使用会话状态时,我们才在aspx.cs上编写一些代码 然而,我不确定这是否是使用MVVM的正确做法(或者它在使用knockout、html和asmx构建应用程序时是否有其他缺点) 对这一

过去我一直在用经典的asp开发web应用程序。我们听说了MVVM样式和knockoutJS。我们认为这可以更好地提高客户机响应时间,并在MVVM中使用了敲除、html(在aspx页面中)和webservice(asmx)编码

在所有的标记中,我们都避免使用aspx控件,并使用带有敲除绑定的html标记。只有在需要使用会话状态时,我们才在aspx.cs上编写一些代码

然而,我不确定这是否是使用MVVM的正确做法(或者它在使用knockout、html和asmx构建应用程序时是否有其他缺点)


对这一点的任何评论都将为我们展示一种光明的方式。

我认为最好将数据、视图模型和视图html分开

视图(包含数据绑定属性)的html应由asp.net提供。viewmodels将包含客户端业务逻辑,并存储在单独的js文件中。然后,您将使用webservices向客户机发送数据,最好以json的形式发送,以便在客户机上进行轻松的反序列化

viewmodels将知道如何从Web服务请求数据,并且还知道在数据到达后如何更新自己。如果正确设置数据绑定属性,则界面将根据viewmodels中的更改自动更新

至于页面的初始状态(当它第一次加载时),您可以使用html交付初始数据集(只需在html中的json变量中写入json),或者在页面加载上设置“加载”状态,并从webservice请求数据

然后你需要决定你希望你的应用程序有多像一个单页应用程序。您会经常向服务器提交页面还是发出大量ajax请求?过去我们在一个非常大的项目中这样做时,我们构建了应用程序的各个部分,比如单页应用程序,而其他部分(主要是枯燥的部分,比如用户管理)是标准表单,带有标准提交


最后,决定在Web服务(服务器端)和viewmodels(客户端)中运行多少业务逻辑。

我同意这是一个基于观点的问题。然而,分享经验将让我们了解不同的设计风格,我们可以选择是否有优势。