2017-06-16 179 views
0

我有一个控制器创建并返回触发警报的内容。 它加载一个空白页面的问题。我怎样才能防止它加载一个空的页面,并保持在当前视图,并不做任何事情只是弹出警报。防止加载页面

我真正想要的是这里之前,用户可以创建新的数据,将验证第一,如果diseaseID已经存在针对特定assessmentID,而当结果为空,它只是弹出一个警告,什么也不做。但在这里我只是想让alert()正常工作。

控制器:

public ActionResult CreateDisease(int? diseaseID,int? assessmentID, DiseaseList diseaselist) 
    { 
     diseaselist.DiseaseID = diseaseID; 
     diseaselist.AssessmentID = assessmentID; 
     db.DiseaseLists.Add(diseaselist); 
     db.SaveChanges(); 
     return Content("<script language='javascript' type='text/javascript'>alert('Item already exist');</script>"); 

    } 
+0

您可以在'ViewBag'包裹邮件或然后视图模型中的客户端代码中使用'alert'与JS是否存在消息。 –

+0

@TetsuyaYamamoto我编辑了内容。 – kielou

+0

而不是在GET方法中返回'Content',尝试使用'return View(“Disease”)'来显示相同​​的视图。客户端验证可以使用AJAX以'DiseaseID'作为参数来处理,并将其传递给控制器​​操作,如果存在,则返回验证消息。 –

回答

1

你不需要返回脚本从控制器的内容,只是返回值的JSON会告诉你,这个项目已经存在,并基于该true或false值显示来自客户端js的警报。

控制器代码将是这个样子

diseaseModel.DiseaseID = diseaseID; 
diseaseModel.AssessmentID = assessmentID; 
diseaseModel.AlreadyExist = true; 

return Json(diseaseModel);