您好我在MVC 5中使用=IF(OR(AND(E2="Yes",D2=F2),AND(E2="No",OR(F2=111,F2=112,F2=118,F2=119))),C2,0)
创建了一个后台作业。我发送后台作业已启动的通知但我不知道如何在后台作业完成时发送通知因为我的ActionResults方法已经返回。
控制器
hangfire
Ajax Call和Javascript通知
public ActionResult RunMedia(int ID)
{
BackgroundJob.Enqueue<CrawlerSearchRequestModel>(x => x.StoreMedia(ID,"NaturalPerson"));
obj
{
success: true
};
return JSON(obj, JsonRequestBehavior.AllowGet)
}
由于
答案 0 :(得分:1)
正如其他人所说,你可以使用signalR或其他协议。要实现此目的,请使用IApplyStateFilter过滤器并实现接口的OnStateApplied方法。
public class YourAttribute : IApplyStateFilter{
public void OnStateApplied(ApplyStateContext context, IWriteOnlyTransaction transaction)
{
if (context.NewState.IsFinal && context.NewState.Name == "Succeeded")
//Send your message to client via signalR
}}