gpt4 book ai didi

javascript - 如何从MVC Controller 向AngularJS Controller 返回消息

转载 作者:行者123 更新时间:2023-12-03 07:52:23 25 4
gpt4 key购买 nike

我需要向用户添加一条警告消息,因此,如果他们尝试插入 session ID == 0的记录,则会返回一条消息,通知他们。

我当前的AngularJS代码用于保存数据,在C#中调用ImportData方法

// Save data to sql database  
$scope.SaveData = function (excelData) {
$http({
method: "POST",
url: "/Home/ImportData",
data: JSON.stringify(excelData),
headers: {
'Content-Type': 'application/json'
}
}).then(function (data) {
if (data.status) {
$scope.Message = excelData.length + " Record Successfully Inserted";
$scope.GetData();
}
else {
$scope.Message = "Failed";
}
}, function (error) {
$scope.Message = "Error";
});
};

C#代码:
 [HttpPost]
public ActionResult ImportData (List<Meeting_WIP> meeting) {
bool status = false;
try {
if (ModelState.IsValid) {
using (MeetingEntities db = new MeetingEntities ()) {
foreach (var i in meeting) {
if (i.MeetingID == 0) {
throw new ArgumentException ("Meeting ID cannot be null or empty string", i.MeetingID.ToString ());
} else {
var compositeKey = db.Meeting_WIP.Find (i.MeetingID, i.AgendaItem);

if (compositeKey == null) {
// Meeting ID does not exist in database it is a new one
db.Meeting_WIP.Add (i);
} else {
// Meeting ID already exist in database just update record
db.Entry (compositeKey).CurrentValues.SetValues (i.MeetingID);
db.Entry (compositeKey).State = EntityState.Modified;
}
}
}

db.SaveChanges ();
status = true;
}
}
} catch (Exception ex) {
ExceptionLogging.SendErrorToText (ex);
}
return new JsonResult { Data = new { status = status } };
}

当前,即使excel数据文件包含 session ID == 0,显示的消息也是:
$scope.Message = excelData.length + " Record Successfully Inserted";

当 session ID == 0时如何分辨Angular代码,然后返回错误并显示类似以下内容:
"Meeting ID cannot be zero/null"

谢谢您的帮助。

伊拉斯莫

angularjs代码调试的屏幕快照

debug screen shot

最佳答案

由于当 session ID为零时将引发参数异常,因此应捕获该异常并相应地设置状态和验证消息。

[HttpPost]
public ActionResult ImportData (List<Meeting_WIP> meeting) {
bool status = false;
string message = "";

try {
if (ModelState.IsValid)

{

using (MeetingEntities db = new MeetingEntities ())

{

foreach (var i in meeting)

{

if (i.MeetingID == 0)

{
throw new ArgumentException ("Meeting ID cannot be null or empty string", i.MeetingID.ToString ());
} else

{

var compositeKey = db.Meeting_WIP.Find (i.MeetingID, i.AgendaItem);

if (compositeKey == null)

{
// Meeting ID does not exist in database it is a new one
db.Meeting_WIP.Add (i);
} else

{
// Meeting ID already exist in database just update record
db.Entry (compositeKey).CurrentValues.SetValues (i.MeetingID);
db.Entry (compositeKey).State = EntityState.Modified;
}

}

}

db.SaveChanges ();
status = true;
}
}
} catch (Exception ex) {
ExceptionLogging.SendErrorToText (ex);
} catch (System.ArgumentException ae) {
status = false;
message = "Meeting ID cannot be zero/null";
}
return new JsonResult { Data = new { status = status, message = message } };
}

您可以向验证结果消息的json结果中添加新属性,并将值设置为“ session ID不能为零/空”
if (data.data.status == true) {
$scope.Message = excelData.length + " Record Successfully Inserted";
$scope.GetData();
}
else {
$scope.Message = data.data.message;
}

关于javascript - 如何从MVC Controller 向AngularJS Controller 返回消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61761177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com