0

我有一个应用程序,我们正在使用实体框架并在按钮上单击一个 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");
        }

        });

提前谢谢。

4

2 回答 2

1

如果您希望为 GroupId 或 counterId 获得 -1 而不是获得其他内容,原因可能是现有值不是 null,而是可能是一个空字符串。检查这一点以及检查空/未定义。如果这不是问题,则可能需要其他信息。

例如:

GroupId: ((GroupId == null || GroupId == '') ? -1 : GroupId),
于 2013-08-29T11:59:13.420 回答
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。希望这可以帮助

于 2013-08-29T11:18:32.740 回答