C# 在控制器中记录插入失败成功时如何显示消息或警报

C# 在控制器中记录插入失败成功时如何显示消息或警报,c#,asp.net-mvc,database,C#,Asp.net Mvc,Database,在我的\u Layout.cshtml页面中,有一个文本框,允许用户键入他/她的电子邮件地址(用于时事通讯)。如果键入的电子邮件地址存在,则不会插入到数据库中,如果不存在,则会插入到数据库中。同时,如果未插入,我希望显示错误消息,如果插入,我希望显示成功消息。这就是我插入数据库的方式 public ActionResult getNewsLetterMail(string N_id, string N_EmailAdd) { Session["Ealert"] = nul

在我的
\u Layout.cshtml
页面中,有一个文本框,允许用户键入他/她的电子邮件地址(用于时事通讯)。如果键入的电子邮件地址存在,则不会插入到数据库中,如果不存在,则会插入到数据库中。同时,如果未插入,我希望显示错误消息,如果插入,我希望显示成功消息。这就是我插入数据库的方式

public ActionResult getNewsLetterMail(string N_id, string N_EmailAdd)
    {
        Session["Ealert"] = null;
        Random random = new Random();
        int idONe = random.Next(99, 999);
        int idTwo = random.Next(999, 9999);
        string middle = "menuka";
        string fullID = idONe.ToString() + middle + idTwo.ToString();
        var N_ID = fullID;
        var N_Email = N_EmailAdd;
        TourCenterDBEntities NewsLetterEntities = new TourCenterDBEntities();
        var existing = NewsLetterEntities.News_Letter.Where(l => l.N_Email == N_EmailAdd);
        Debug.WriteLine(existing.Count());
        if (existing.Count() == 0)
        {
            News_Letter NewsLetterDetails = new News_Letter();
            NewsLetterDetails.N_id = N_ID;
            NewsLetterDetails.N_Email = N_Email;
            NewsLetterEntities.News_Letter.Add(NewsLetterDetails);
            NewsLetterEntities.SaveChanges();
            //want to send success text
        }
        else
        {
            //want to send error text                  
        }
        return Json(new { });
    }
如果成功或出错,它将返回相同的
\u Layout.csthml
页面。
我该怎么做呢。希望你能帮忙。

你可以用。返回内容

if (existing.Count() == 0)
    {
        News_Letter NewsLetterDetails = new News_Letter();
        NewsLetterDetails.N_id = N_ID;
        NewsLetterDetails.N_Email = N_Email;
        NewsLetterEntities.News_Letter.Add(NewsLetterDetails);
        NewsLetterEntities.SaveChanges();

        //return Content("Your information saved successfully");
        return new JavascriptResult { Script = "alert('Your information saved successfully');" };
    }
    else
    {
        //return Content("Already exist. Please choose another.");
        return new JavascriptResult { Script = "alert('Your information saved successfully');" };                  
    }
在视图中,可以添加jquery以显示消息。下面是在视图中检索消息的示例。您可以相应地编辑表单中的名称

`<script type="text/javascript">
  $(document).ready(function () {
   $("#yourForm").submit(function (e) {
      e.preventDefault();
        var valid = $("#yourForm").valid();
        if (valid) {
           $.ajax({
            url: "/getNewsLetterMail",
            type: "POST",
            data: {
                   Name: $("#N_id").val(),
                   Email: $("#N_EmailAdd").val(),
                    },
                    success: function (data) {
                        alert(data);
                        reset();
                    }
                });
            }
        });
 });
</script>'
`
$(文档).ready(函数(){
$(“#您的表单”)。提交(函数(e){
e、 预防默认值();
var valid=$(“#yourForm”).valid();
如果(有效){
$.ajax({
url:“/getNewsLetterMail”,
类型:“POST”,
数据:{
名称:$(“#N#u id”).val(),
电子邮件:$(“#N#u EmailAdd”).val(),
},
成功:功能(数据){
警报(数据);
重置();
}
});
}
});
});
'
在你看来

$.post('@Url.Action("getNewsLetterMail", "yourControllerName")', { N_id: N_id, N_EmailAdd: N_EmailAdd }).done(function (data) {
 if (data == "success") {
                alert("Success!");                    
 }
 if( data== "failed")  {
                alert("Failed!");                    
 }
}

我没有经验,但我会尝试这样做: 在我的视图模型中,我将 字符串信息 在我看来

 @Html.DisplayFor(m=>m.info)
和在控制器中

if(existing){info="success"}

您必须将信息传递到控制器中的viewmodel

检查这是否有帮助:然后我如何在视图中检索它您可以使用JavascriptResult向用户显示警报。警报可以这样做,但如果我想向视图发送文本并显示该文本,如果您想返回一个普通字符串,然后使用我注释掉的内容,我该怎么做呢。你也可以检查这个QA。如何在视图中检索它当您返回Json()时,我应该在中执行视图部分吗?您明确告诉MVC不要使用视图,而是要提供序列化的Json数据。所以,如果您想在一个简单的视图中显示,只需执行return View(),并在TempData[]的帮助下,您可以显示任何您想要的消息。
if(existing){info="success"}
if(existing){info="success"}