use*_*796 4 asp.net-mvc action controller viewmodel
每当我们通过完整回发或ajax调用调用任何动作控制器时,我想检查视图模型并根据某些逻辑注入一些要在浏览器中执行的javascript。该应用程序大部分已经编码,我想要做的是拥有一些可以解决问题的通用代码。我想知道什么是最好的方法。我正在考虑使用动作过滤器,然后检查模型,然后在需要时注入 js。但不确定这如何处理诸如执行的动作等事件。任何代码示例都会有所帮助。
另一种选择是在客户端进行。但再次不确定如何以通用方式正确地做到这一点。
查看覆盖基本控制器的 OnActionExecuted 事件,该事件应在操作处理完视图模型后提供对视图模型的访问。不过我很好奇,你到底要如何将一段 javascript 注入到 AJAX 响应中,这通常是一个简单的 JSON 对象?
如果您真正要问的是如何从控制器注入 javascript,您可以将以下内容放在您的视图中:
<script type="text/javascript" defer="defer">
@Html.Raw(ViewBag.StartupScript)
</script>
Run Code Online (Sandbox Code Playgroud)
您可以将上述内容添加到特定视图或布局页面。然后,你可以做这样的事情:
public class MyController : Controller
{
public override void OnActionExecuted(...)
{
if (...)
{
ViewBag.StartupScript = "alert('hello world!');";
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11712 次 |
| 最近记录: |