【发布时间】:2012-11-21 13:48:25
【问题描述】:
单击 Ajax.ActionLink 时,我希望页面标题根据 ViewBag.Title 自动更改。我可以这样做,但我无法从 ActionExecutedFilter 访问在“razor.cshtml”文件中分配的 ViewBag.Title。我可以从 ActionExecutedFilter 访问仅在 Action Method 中分配的 ViewBag.Title。
ActionExecutedFilter 可能是这样的:
string scriptText = "<script type='text/javascript'>document.title = '"
+ ViewBag.Title + "';</script>";
filterContext.HttpContext.Response.Write(scriptText);
如何做到这一点?
【问题讨论】:
-
您不考虑使用 jquery 请求操作并获取
json对象来更新您在Ajax.ActionLink上设置的UpdateTargetId元素并将json 对象的另一个属性应用于@987654325 @? -
我上面指定的方式更有吸引力,如果我可以从过滤器中做到。
-
您无法按照显示代码的方式进行操作。当您发出 ajax 请求时,您的结果很可能是 JSON 或 HTML 视图。您需要捕获 OnSuccess 事件并使用您从操作中获得的结果集更新您的页面标题。您需要查看 MVC 的工作原理,您尝试的内容存在一些根本缺陷。
标签: asp.net asp.net-mvc razor asp.net-mvc-4