首先,新年快乐,第二名,我的ASP商店遇到了一些问题,在这种情况下,我认为我错过了一些我需要知道的东西或者关于ASP的东西......问题是:
我有这个ASPX:
CreateUpdate.aspx
<asp:Label ID="lblRefProd" runat="server" Text="Referencia del producto"></asp:Label><br />
<asp:TextBox ID="refProd" runat="server" Width="300px"></asp:TextBox><br />
<br />
<br />
<!-- Name of product -->
<asp:Label ID="lblNomProd" runat="server" Text="Nombre del producto"></asp:Label><br />
<asp:TextBox ID="nomProd" runat="server" Width="300px"></asp:TextBox><br />
<br />
<br />
<!-- Description about product -->
<asp:Label ID="lblDescProd" runat="server" Text="Descripcion del producto"></asp:Label><br />
<asp:TextBox ID="descProd" runat="server" TextMode="MultiLine" Width="300px"></asp:TextBox><br />
<br />
<br />
<!-- Price of the product -->
<asp:Label ID="lblPrecProd" runat="server" Text="Precio del producto"></asp:Label><br />
<asp:TextBox ID="precProd" runat="server" Width="300px"></asp:TextBox><br />
<br />
<br />
<!-- Stock of product -->
<asp:Label ID="lblExistencias" runat="server" Text="Numero de unidades"></asp:Label><br />
<asp:TextBox ID="exisProd" runat="server" Width="300px"></asp:TextBox><br />
<br />
<br />
<!-- Taxes of the product or IVA in Spain-->
<asp:Label ID="lblIvaProd" runat="server" Text="IVA del producto"></asp:Label><br />
<br />
在CreateUpdate.aspx.cs
中//填充数据方法
if (idText != null)
{
int id = 0;
if (int.TryParse(idText, out id))
{
product = productManager.GetById(new object[] { id });
if (product != null)
{
//Id, Referencia, Nombre, Precio, Descripcion, IVA, Imagen, Existencias, Categoria
Id.Value = product.Id.ToString();
refProd.Text = product.Ref;
nomProd.Text = product.NomProducto;
precProd.Text = ((double)product.Precio).ToString();
descProd.Text = product.DescProducto;
ivaProd.SelectedValue = ((int)product.Iva).ToString();
exisProd.Text = ((int)product.Existencias).ToString();
catProd.SelectedValue = ((int)product.Categoria).ToString();
}
}
}
如果您在URL中放置“CreateUpdate?Id = 7”,此部分将使用具有此ID的产品的字段填充值,在本例中为7。好吧,这种方法工作正常,但如果我尝试用这种方法修改一些字段:
#region modifyProduct
if (!string.IsNullOrWhiteSpace(refProd.Text))
{
product.Id = Convert.ToInt32(Id.Value);
product.Precio = Convert.ToDouble(precProd.Text);
product.DescProducto = precProd.Text;
product.Existencias = Convert.ToInt32(exisProd.Text);
}
if (ImageUpload.HasFile)
{
var nomProdImg = nomProd.Text;
String fileExtension = System.IO.Path.GetExtension(ImageUpload.FileName).ToLower();
String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg" };
if (allowedExtensions.Contains(fileExtension))
{
ImageUpload.PostedFile.SaveAs(Server.MapPath("../ImgsUpload/products/") + nomProdImg + fileExtension);
product.Imagenes.Add(new Imgs
{
NomImg = nomProdImg,
RutaImg = "../ImgsUpload/products/" + nomProdImg + fileExtension,
Product_Id = product.Id
});
}
}
//context.SaveChanges();
productManager.Context.SaveChanges();
result.Text = "Producto guardado con exito";
#endregion
当我尝试调试这个部分时,值根本没有变化,它采用与fill-values方法相同的值,如果我将例如价格设为700而最后一个值为400则为I创造产品,它将需要400,而不是700。
我试图自己解决,但也许我需要一些东西,或者在ASP中有所不同。
提前致谢。