使用一般处理程序处理AJAX请求
前台:
function SaveSKU(SkuId) {
var Elements = $("." + SkuId);
var CostPrice1 = Elements[0].value;
var CostPrice2 = Elements[1].value;
var Weight = Elements[2].value;
//GradePrice最终格式为;"3#1,4#2,5#3"
var GradePrice = "";
var EleLen = Elements.length;
for (var vi = 0; vi < EleLen; vi++) {
var gradeId = Elements[vi].id.split("_")[0];
if (vi == EleLen - 1) {
GradePrice += Elements[vi].value + "#" + gradeId;
} else {
GradePrice += Elements[vi].value + "#" + gradeId + ",";
}
}
$.ajax({
type: "POST",
url: "HandlerDesignSaveSKU.ashx",
async: false,
data: {
SkuId: SkuId,
GradePrice: GradePrice
},
success: function (responseData) {
//alert(responseData);
}
});
}
后台:
/// <summary>
/// HandlerDesignSaveSKU 的摘要说明
/// </summary>
public class HandlerDesignSaveSKU : IHttpHandler
{
private Object thisLock = new Object();
public void ProcessRequest(HttpContext context)
{
//线程互斥
lock (thisLock)
{
context.Response.ContentType = "text/plain";
string flag = "";
string SkuId = context.Request.Form["SkuId"];
//GradePrice格式为;"3#1,4#2,5#3" ,表示一级价格为3,2级价格为4,三级价格为5
string GradePrice = context.Request.Form["GradePrice"];
//ArrGradePrice[0]表示等级一的价格,ArrGradePrice[1]表示等级二的价格,依次类推...
string[] ArrGradePrice = GradePrice.Split(',');
V5print.BLL.DesignSheet.AttributeSKU4Grade bllSku4Grade = new V5print.BLL.DesignSheet.AttributeSKU4Grade();
for (int i = 0; i < ArrGradePrice.Length; i++)
{
string[] arrPrice = ArrGradePrice[i].Split('#');
string Price = arrPrice[0];
string GardeId = arrPrice[1];
StringBuilder bd = new StringBuilder();
bd.AppendFormat(" SkuId={0} and GradeId={1} ", SkuId, GardeId);
List<V5print.Model.DesignSheet.AttributeSKU4Grade> itemsSku4Grade = bllSku4Grade.GetModelList(bd.ToString());
if (itemsSku4Grade.Count > 0)
{
if ((!string.IsNullOrWhiteSpace(Price)) && (PageValidate.IsMoney(Price)))
{
//如果该等级对于的价格已存在且新输入的价格不为空,则更新
V5print.Model.DesignSheet.AttributeSKU4Grade modelSku4GradeExit = itemsSku4Grade[0];
modelSku4GradeExit.Price = decimal.Parse(Price);
bllSku4Grade.Update(modelSku4GradeExit);
modelSku4GradeExit = null;
}
}
else
{
//否则,插入新的数据
V5print.Model.DesignSheet.AttributeSKU4Grade modelSku4Grade = new V5print.Model.DesignSheet.AttributeSKU4Grade();
modelSku4Grade.SkuId = int.Parse(SkuId);
modelSku4Grade.GradeId = int.Parse(GardeId);
if ((!string.IsNullOrWhiteSpace(Price)) && (PageValidate.IsMoney(Price)))
{
//如果不为空才插入价格
modelSku4Grade.Price = decimal.Parse(Price);
}
bllSku4Grade.Add(modelSku4Grade);
modelSku4Grade = null;
}
}
context.Response.Write(flag);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}