2013-08-29 48 views
0

我有一个应用程序,我们正在使用实体框架,并在按钮上单击ajax调用来保存值。
一切工作正常,但即使我们尝试点击保存按钮,没有值,它会被保存在数据库中为空或空(需要空间)。
有一些我可以忽略的小错误,请帮我解决。
我的尝试:避免空值或空值使用实体框架保存在数据库中

$.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"); 
     } 

     }); 

Thanx提前。

+0

您需要短语的实际问题,请。你究竟想要做什么?如果值未填写,禁止保存?什么不工作?什么是小错误?你想让-1进入数据库,它不?这一切都与JavaScript或其他什么? –

+0

@AlexPaven,我想保存在文本框中输入的值,并点击'保存'按钮,由ajax调用它保存。这部分工作正常,值得到保存。但是如果我们在文本框中什么也不输入,那么它就会保存null或者一个空字符串,这是我想要避免的部分。 – Novice

回答

1

您有几种选择,以满足您的要求,他们两个是Client Side validation and server side validations这意味着你需要之前验证数据发送到数据库保存..喜欢

你的模型类的权利..代表您如果您尝试空值发送到控制器或的DbContext它不会允许你插入空值到它,因为它仅允许非空值的表

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

假设。

,你也可以使用jQuery

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

这样你可以做到这一点在很多方面可以使用非侵入式JavaScript以及做到这一点。希望这会有所帮助

+0

谢谢你的帮助,@Karthik Bammidi:让我看看,如果这对我有用。 – Novice

1

如果您希望为GroupId或counterId获取-1而取而代之,原因可能是现有值不为空,但可能为空字符串。检查并检查null/undefined。如果这不是问题,那么可能需要额外的信息。

例如:

GroupId: ((GroupId == null || GroupId == '') ? -1 : GroupId), 
相关问题