我有一个应用程序,我们正在使用实体框架,点击按钮时会调用ajax来保存值
一切都运行正常,但即使我们尝试单击保存按钮,没有值,它也会在数据库中保存为null或空(占用空间)。
我忽略了一些小错误,请帮帮我
我尝试了什么:
$.ajax({
type: "POST",
url: '~/SaveGroups',
data: {
GroupId: (GroupId == null ? -1 : GroupId),
counterId: (counterId == null ? -1 : counterId),
GroupCode: GroupCode,
GroupDesc: GroupDescription
},
success: function (result) {
if (result != null) {
$("#PartialGroupsTable").html(result.GroupsPageString);
$("#GCode").val('') //GCode is the name of the textbox
$("#GDescription").val(''); //GDescription is the other textbox
GroupId = -1;
}
},
complete: function () {
$("#GCode").empty();
$("#GDescription").empty();
},
error: function () {
alert("Details Not Saved. Please try again later");
}
});
提前完成。
答案 0 :(得分:1)
您有多个选项可以满足您的要求,其中两个是Client Side validation and server side validations
,这意味着您需要在将数据发送到数据库之前验证数据以进行保存..例如
你有正确的模型类..代表你的表
public class User
{
[Required]
public string UserName{get; set;}
...
...
}
假设您尝试向控制器或dbcontext发送空值,它将不允许您向其中插入空值,因为它只允许非空值。
你也可以使用jquery
来做到这一点function buttonClick()
{
if($('#txtName').val()=='')
{
alert('Please enter name');
return false;
}
else
{
//make ajax call here
}
}
像这样,你可以通过多种方式实现它,你也可以使用不引人注目的javascript。希望这有帮助
答案 1 :(得分:1)
如果您期望为GroupId或counterId获得-1而不是获得其他内容,原因可能是现有值不为null但可能是空字符串。检查它以及检查null / undefined。如果这不是问题,则可能需要其他信息。
例如:
GroupId: ((GroupId == null || GroupId == '') ? -1 : GroupId),