显示/不显示JavaScript警报,具体取决于LINQ查询的结果

Display/Not Display JavaScript Alert depending on results of LINQ query

本文关键字:显示 取决于 LINQ 查询 结果 JavaScript 警报      更新时间:2023-09-26

我正在尝试用C#/LINQ(CodeBehind)和JavaScript(in.aspx)开发代码,这些代码将测试添加到数据库中的值是否已经存在。我的目标是避免出现系统错误消息,停止处理,并显示一个Alert,指示试图添加的值是重复值。我使用的代码似乎首先触发了JavaScript(即在我的LINQ查询检查重复之前)。因此,我从来没有得到关于LINQ查询的准确解读。tbxChannel包含要添加到数据库中的值。如有任何帮助,我们将不胜感激。我使用的是VS 2010,我的代码如下:

LINQ/C#:

var getChannel = (from c in db.Channel
                  where c.Channel1 == tbxChannel.Text
                  select new { c.Channel1 }).ToList();
if (getChannel.Count > 0)
{
    string tbxDupChannel = getChannel[0].Channel1;
    return;
}

JavaScript:

if (document.getElementById("<% = tbxDupChannel.ClientID %>").value.length > 0)
{
    var dupChannel = document.getElementById("<% = tbxDupChannel.ClientID %>").value;
    window.alert("Update Aborted... " + dupChannel +
    " is already on the database and cannot be added a second time.");
    return;
}

试试这样的

LINQ/C#:

// Make DupChannel a public property
public string DupChannel { get; set; }
public void Page_Load(object sender, EventArgs e) 
{
var getChannel = (from c in db.Channel
                  where c.Channel1 == tbxChannel.Text
                  select new { c.Channel1 }).ToList();
if (getChannel.Count > 0)
{
    DupChannel = getChannel[0].Channel1;
    return;
}

JavaScript:

var dupChannel = '<%= DupChannel %>';
if (dupChannel.length > 0)
{

    window.alert("Update Aborted... " + dupChannel +
    " is already on the database and cannot be added a second time.");
    return;
}

我采取了一种不同的方法,通过将JavaScript Alert嵌入我的CodeBehind:来解决我的问题

if (getChannel.Count > 0)
{
    string dupChannel = getChannel[0].Channel1;
    Response.Write(@"<script language='javascript'>alert('Update Aborted... 'n 'nChannel " + dupChannel + " is already on the database and cannot be added a second time.');</script>");
   tbxChannel.Text = "";
   tbxChannel.Focus();
   return;
}