如何更新@ Ajax.ActionLink的Html文档标题(How to update Html

2019-11-01 05:59发布

当点击Ajax.ActionLink,我想页面标题根据ViewBag.Title自动改变。 我可以做,但我不能访问从ActionExecutedFilter“razor.cshtml”文件分配ViewBag.Title。 我可以访问ViewBag.Title只能在离ActionExecutedFilter操作方法分配。

该ActionExecutedFilter可能是这样:

string scriptText = "<script type='text/javascript'>document.title = '" 
                    + ViewBag.Title + "';</script>";
filterContext.HttpContext.Response.Write(scriptText);

如何实现这一目标?

Answer 1:

我认为这可以解决你的问题。 但是它没有使用ViewBag,但标题的价值也将与您的局部视图文件,如果我的理解以及它是你的意图。

您的局部视图

<span id="mySpan" style="display:none">Page header</span>
@Ajax.ActionLink("MyLink", "Random", 
                 new AjaxOptions() { HttpMethod = "GET", 
                                     UpdateTargetId = "random", 
                                     OnSuccess = "document.title = document.getElementById('mySpan').innerHTML" 
                  });

<div id="random">
    Random goes here.
</div>

你想从你的局部视图设置文档标题的值是隐藏在内部的跨度(这可能是也有些头的值<h1/>或子标题<h2/> ...取决于你的需要)。



文章来源: How to update Html document title with @Ajax.ActionLink