阻止加载页面
Posted
技术标签:
【中文标题】阻止加载页面【英文标题】:Prevent loading page 【发布时间】:2017-06-16 08:51:29 【问题描述】:我有一个控制器创建并返回触发警报的内容。 它加载一个空页面的问题。我怎样才能防止它加载一个空页面并停留在当前视图中并且什么都不做,只是弹出警报。
我真正想要的是在用户创建新数据之前,它会首先验证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>");
【问题讨论】:
您可以将消息包装在ViewBag
或视图模型中,然后如果消息存在,则在客户端代码中使用alert
和JS。
@TetsuyaYamamoto 我编辑了内容。
与其在 GET 方法中返回Content
,不如尝试使用return View("Disease")
来显示相同的视图。客户端验证可以使用带有DiseaseID
作为参数的 AJAX 进行处理,将其传递给控制器操作,如果存在则返回验证消息。
【参考方案1】:
您不需要将脚本作为内容从控制器返回,只需将值返回为 json,它将告诉您该项目已经存在,并基于该 true 或 false 值显示来自客户端 js 的警报。
您的控制器代码将如下所示
diseaseModel.DiseaseID = diseaseID;
diseaseModel.AssessmentID = assessmentID;
diseaseModel.AlreadyExist = true;
return Json(diseaseModel);
【讨论】:
以上是关于阻止加载页面的主要内容,如果未能解决你的问题,请参考以下文章