我在MVC 4上练习将数据保存到数据库中。系统采用员工的名字,姓氏,加入日期,出生日期,电子邮件和联系电话。
正在保存数据,但我希望它在同一屏幕上显示成功消息。我已经使用了jquery。
function onSucessSaveemployee(data) {
if (data.Status == "OK") {
ShowAlertInline(getMessage("Insertupdateemployeemsg"), SUCESSTYPE);
setTimeout(function () {
Navigator(CancelEmployeeurl, 'pageredirect', '')
}, 10000);
它会显示第二次重定向到http://localhost:54320/InsertUpdateemployee的消息,并在下面给出以下消息。
{"Data":null,"Status":"OK","Name":"Save Employee","RedirectTo":null,"ErrorInfo":null,"Message":"Employee detail Inserted"}
我做错了什么?如果需要,我会提供更多信息。
showAlertInline的代码
function ShowAlertInline(message, messageType) {
jQuery('#alertMessage > p').html(message)
var alertObj = jQuery('#alertMessage');
jQuery(alertObj).removeClass('alert-error').removeClass('alert- success').removeClass('alert-warning');
if (messageType == ERRORTYPE) {
jQuery(alertObj).addClass('alert-error');
}
else if (messageType == SUCESSTYPE) {
jQuery(alertObj).addClass('alert-success');
}
else if (messageType == WARRNIGTYPE) {
jQuery(alertObj).addClass('alert-warning');
}
jQuery(alertObj).show();
setTimeout(HideAlertInline, 10000);
code for getmessage
function getMessage(key, placeHolders) {
LanguageCurrent = 'en'; //Default English
if (localStorage) {
if (localStorage.LanguageCurrent != undefined) {
LanguageCurrent = localStorage.LanguageCurrent;
}
}
员工控制器有以下代码:
public partial class MasterController : BaseController { public ActionResult EmployeeDetail(String id) { if (!string.IsNullOrEmpty(id)) { EmployeeModel employeeModel = new EmployeeModel(); employeeModel = masterRepository.GetEmployeeById(id); employeeModel.Department = masterRepository.Department(); return View("Employee", employeeModel); } else { EmployeeModel employeeModel = new EmployeeModel(); employeeModel.Department = masterRepository.Department(); return View("Employee", employeeModel); } } public ActionResult SaveEmployee(EmployeeModel employeeModel) { AjaxResponse objAjaxResponse = new AjaxResponse(); objAjaxResponse.Name = "Save Employee"; if(employeeModel != null) { employeeModel = masterRepository.Insertupdateemployee(employeeModel); if (employeeModel.EmployeeID != 0) { objAjaxResponse.Status = AjaxResponseStatusCodes.Ok; objAjaxResponse.Message = Resources.Resource.EmployeeDetailUpdate; } else { objAjaxResponse.Status = AjaxResponseStatusCodes.Ok; objAjaxResponse.Message = Resources.Resource.EmployeeDetailInsert; } } else { return View("Employee", employeeModel); } }
对于InsertUpdateemployee。
function Insertupdateemployee() { var currentForm = jQuery("#frmEmployeeDetail"); if (CheckErrors(currentForm)) { var formData = currentForm.serialize(); AjaxCall({ url: InsertUpdateUrl, postData: formData, httpmethod: 'POST', calldatatype: 'JSON', sucesscallbackfunction: 'onSucessSaveemployee', isAsync:false }); } }
这不是它结束的地方。我调试了它然后我发现它调试了两次并且数据被保存了两次但是有时通过使用firebug通过Jquery放置调试器它运行得很好并且数据被保存一次。删除调试器后,我遇到了各种各样的问题。
1>页面未被重定向并显示消息
{"Data":null,"Status":"OK","Name":"Save Employee","RedirectTo":null,"ErrorInfo":null,"Message":"Employee detail Inserted"} on page with网址http://localhost:54320/InsertUpdateemployee,并在下面给出以下消息。
2 - ;数据在数据库中保存两次。 3 GT;在方法上放置调试点时运行完美。 请帮我。
由于我无法在本网站上提问,因此我无法提出更多问题。我无法进一步学习,因为我对此问题感到恼火。