Jquery 在现有Asp.NETMVC(RazorView)应用程序的每个页面上嵌入警报弹出窗口的最简单方法
我们有一个使用RazorView编写的现有ASP.NETMVC4应用程序。要求在每个页面上以弹出窗口的形式显示信息消息 在表单提交上执行某些操作后,信息可能在对服务(元数据)/的ajax调用中可用 我们希望对现有的应用程序逻辑进行最小的更改。 请建议实现此功能的最佳方法 对于pageLoad上可用的消息,我计划使用ActionFilters。 (使用脚本设置ViewBag并将其嵌入布局页面) 但是,我不知道是否可以将通用方法应用于ajax调用和回发(表单提交)Jquery 在现有Asp.NETMVC(RazorView)应用程序的每个页面上嵌入警报弹出窗口的最简单方法,jquery,ajax,asp.net-mvc,asp.net-mvc-4,Jquery,Ajax,Asp.net Mvc,Asp.net Mvc 4,我们有一个使用RazorView编写的现有ASP.NETMVC4应用程序。要求在每个页面上以弹出窗口的形式显示信息消息 在表单提交上执行某些操作后,信息可能在对服务(元数据)/的ajax调用中可用 我们希望对现有的应用程序逻辑进行最小的更改。 请建议实现此功能的最佳方法 对于pageLoad上可用的消息,我计划使用ActionFilters。 (使用脚本设置ViewBag并将其嵌入布局页面) 但是,我不知道是否可以将通用方法应用于ajax调用和回发(表单提交) 请帮忙。你想得对。在基本控制器中,
请帮忙。你想得对。在基本控制器中,可以定义消息
public class YourBaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
ViewBag.Message = "This will go to dialog in view";
}
}
在\u布局中
可以在对话框中显示ViewBag的值。您还可以从配置文件中获取消息值,从而无需更改代码
ViewBag.Message = ConfigurationSettings.AppSettings["This will go to dialog in view"];
由于我没有得到太多帮助,以下是所采取的方法: 1.在MyBaseController中使用filter/override OnResultExecuting事件将消息添加到ViewBag,并在布局页面中在ViewBag.message不为空时嵌入脚本块。这将负责在页面加载时显示消息 2.对于只有在ajax请求完成后才可用的消息,我们可以在会话变量中设置该消息,并放置另一个请求来查询该值。不接受使用cookies,并且我们在页面上没有并发的ajax请求。
因此,即使有额外的调用,代码更改也是最小的,并且符合我们的要求。但我的要求并不那么直截了当。根据业务场景,某些消息可能可用。。在某些用户场景中,比如——在接下来的2小时内您无法编辑数据——消息可能会通过web服务与内容表一起提供。现在,我想在通过Json获得信息后,在ajax调用中显示警报。请注意,没有在视图模型中保存此消息的规定。我想知道我是否可以将这些额外的信息作为元数据传递,以及是否有一种通用的方法来处理这个场景。