我正在尝试更新我的表格。我有一个只有一个TextBox的页面,用户可以在其中输入数量,但它不会更新。没有任何错误或任何错误。而且,我们只是说列中已经有'1',然后我更新它说'6',然后我回到表中,那个特定的行现在变成了'0'。我不明白。
当我查看url的Query String部分时。无论我发布什么值的表单,它总是说0是查询字符串。
这就是我所拥有的:
var UpdateQuantityQuery = "";
if(Request.Form["IsBoxed"].AsBool() == true)
{
UpdateQuantityQuery = "UPDATE Cart SET Boxes = '" + Request.Form["quantity"].AsInt() + "' WHERE PartNumber = '" + Request.Form["PartNumber"] + "' AND IsBoxed = 'True' AND OrderId = '" + Session["OSFOID"] + "'";
database.Execute(UpdateQuantityQuery);
// Redirect back to their SHopping Cart now.
Response.Redirect("~/Account/Cart.cshtml");
}
else
{
UpdateQuantityQuery = "UPDATE Cart SET Units = '" + Request.Form["quantity"].AsInt() + "' WHERE PartNumber = '" + Request.Form["PartNumber"] + "' AND IsBoxed = 'False' AND OrderId = '" + Session["OSFOID"] + "'";
database.Execute(UpdateQuantityQuery);
// Redirect back to their SHopping Cart now.
Response.Redirect("~/Account/Cart.cshtml");
}
表单代码是:
<form method="post" action="EditQuantity.cshtml?Update=OK&PartNumber=@Request["PartNumber"]&IsBoxed=@Request["IsBoxed"]">
<fieldset>
<legend>Edit Quantity</legend>
<label for="quantity">
@Message
</label>
<input type="text" name="quantity" title="Edit Quantity" />
<input type="submit" value="Confirm" title="Confirm Change" />
</fieldset>
</form>
我在这里做错了什么可能会导致这种共谋?
答案 0 :(得分:2)
你应该使用
if(Request.QueryString["IsBoxed"].AsBool() == true)
不是表单,您通过查询字符串发送此信息而不是表单元素
答案 1 :(得分:1)
只是一个猜测,但是在您的更新查询中,您是否正在使用字符串更新整数类型?看起来你用单引号将你正在转换的值包装成整数。我想这一切都取决于数据库中类型的定义方式。如果它们被定义为整数,请尝试删除单引号。如果它们被定义为字符串,则没有理由将它们转换为整数。只是一个猜测。