C# 如何编写只运行一次的代码
基本上,我有一个包含两个表单的页面,都使用相同的代码来验证数据:C# 如何编写只运行一次的代码,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,基本上,我有一个包含两个表单的页面,都使用相同的代码来验证数据: public ActionResult DoValCheck(ValidationCheckObject aValCheckHelper) { var recID = int.Parse(aValCheckHelper.RecordID); var hicnExists = UnitOfWork.McaUniqueRecordRepository.FindBy(m => m.HICN
public ActionResult DoValCheck(ValidationCheckObject aValCheckHelper)
{
var recID = int.Parse(aValCheckHelper.RecordID);
var hicnExists = UnitOfWork.McaUniqueRecordRepository.FindBy(m => m.HICN == aValCheckHelper.HICN);
var ssnExists = UnitOfWork.McaUniqueRecordRepository.FindBy(m => m.Injured_Party.SSN == aValCheckHelper.SSN);
if ((UnitOfWork.McaUniqueRecordRepository.FindBy(m => m.Record_ID == recID && m.HICN == aValCheckHelper.HICN).Any()) ||
UnitOfWork.McaUniqueRecordRepository.FindBy(m => m.Record_ID == recID && m.Injured_Party.SSN == aValCheckHelper.SSN).Any())
{
return Json(false);
}
if (hicnExists.Any())
{
return Json(new { Success = hicnExists.Any(), RecordID = (hicnExists.Any() ? hicnExists.First().Record_ID : -1) });
}
if (ssnExists.Any())
{
return Json(new { Success = ssnExists.Any(), RecordID = (ssnExists.Any() ? ssnExists.First().Record_ID : -1) });
}
else
{
return Json(false);
}
}
现在的问题是,这段代码被设置为在条件为真的任何时候运行…所以任何时候HICNESists.any为真,这段代码运行这段代码在我的JavaScript中被调用,但我宁愿一次只处理一部分。也就是说,任何时候在HICN文本字段中有代码,HICNESists.any都是真的
如何才能只允许此代码运行一次?使HICNESists成为可为空的静态类级别变量。测试在调用函数时是否为null。如果为null,则运行查询并设置值。设置该值后,对于当前事务的其余部分,将不会再次运行查询
如果要在事务之间缓存结果,建议设置会话cookie或使用服务器端会话变量。您可以创建一个文件。如果该文件存在,则该文件以前已运行过。如果它不存在,则以前从未运行过。