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"}