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 ではなく、空の文字列であることが原因です。それを確認し、null/未定義を確認してください。それが問題でない場合は、追加情報が必要になる場合があります。

例えば:

GroupId: ((GroupId == null || GroupId == '') ? -1 : GroupId),
于 2013-08-29T11:59:13.420 に答える
1

要件を満たすにはいくつかのオプションがあります。そのうちの 2 つはClient Side validation and server side validations、データを保存するためにデータベースに送信する前にデータを検証する必要があることを意味します。

あなたは正しいモデルクラスを持っています..それはあなたのテーブルを表します

public class User
{
[Required]
public string UserName{get; set;}
...
...
} 

null 値をコントローラーまたは dbcontext に送信しようとすると、null 以外の値のみが許可されるため、null 値を挿入することはできません。

また、jqueryを使用してこれを行うこともできます

function buttonClick()
{
if($('#txtName').val()=='')
{
alert('Please enter name');
return false;
}
else
{
//make ajax call here
}
}

このように、邪魔にならない JavaScript を使用して、さまざまな方法でそれを行うことができます。お役に立てれば

于 2013-08-29T11:18:32.740 に答える