繁体   English   中英

ASP.NET AJAX Web服务中的数据库调用与传递属性

[英]Database call vs Passing attributes in ASP.NET AJAX Web Service

我有一个包含许多食物的食物菜单应用程序。 每个项目都有几个选项,我通过无线电和复选按钮提供。 每个按钮都有属性(即名称,代码,数据库ID等)。

现在,当用户选择食品时,我的jquery代码调用了服务器端Web服务,该服务进行数据库调用以生成并返回食品的按钮及其属性的HTML。

单选和检查按钮示例:

<input type="radio" value='6 inch:6":538:0.00:116:152:False' />

<input type="checkbox" itemid="152" abbreviation="HP" additionalcost="0.50" ingrdname="Pepper Jack" stdingrd="False" ingid="428" inggroupid="74" />

当用户单击按钮以自定义食品项目并将其添加到他们的订单时,jquery代码将生成一个具有按钮属性值的大字符串,并将其发送到Web服务,该服务将对该字符串进行解析并将信息添加到数据库中。

上面的按钮示例的字符串部分如下所示:

[6 inch:false:116:538:6":False,Pepper Jack:true:74:428:HP:False]

因此,所有属性信息都是来回传递的。 当然,用户的按钮数量很大。

问题:我应该保持原样,还是应该仅来回传递少量信息(即,数据库ID和已检查或未检查),并在服务器上再次进行其他数据库调用以获取所需的属性信息?用户将商品添加到订单中?

欢迎所有想法。

后端Web服务不应返回HTML,甚至不应该与HTML构造有关。 让它返回一个对象结构并使用模板引擎,或一堆jquery代码来解释对象数据并在UI层(也就是您的html / js)中构建html结构。

如果您使用的是c#,请查看WebAPI。 它将返回并接受JSON对象,并将它们转换为.Net对象/ DTO。

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

举个例子:

您的数据服务可能会以JSON返回一些对象:

[{size: "6 inch", sizeAbbrev: '6"', otherProp: 538, otherProp2:116, otherProp3: 152: otherProp4: false}]

然后,jQuery可以执行以下操作:

data.forEach(function(obj, i){
   $('#myDiv').append('<input type="radio" value= "' + obj.size + ':' + obj.sizeAbbrev + '"/>';
});

像句柄这样的模板库可以更干净地做到这一点,但是jQuery也可以。

现在,您的后端服务仅提供数据,如果您不再想要使用输入框或收音机,则无需重新编译svc。只需更改一些轻量级js。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM