Asp.net 如何使用@Ajax.ActionLink更新Html文档标题

Asp.net 如何使用@Ajax.ActionLink更新Html文档标题,asp.net,asp.net-mvc,razor,asp.net-mvc-4,Asp.net,Asp.net Mvc,Razor,Asp.net Mvc 4,单击Ajax.ActionLink时,我希望页面标题根据ViewBag.title自动更改。我可以,但我无法从ActionExecuteFilter访问在“razor.cshtml”文件中分配的ViewBag.Title。我可以访问ViewBag。标题仅在ActionExecutedFilter的Action方法中指定 ActionExecuteFilter可以是这样的: string scriptText = "<script type='text/javascript'>docu

单击Ajax.ActionLink时,我希望页面标题根据ViewBag.title自动更改。我可以,但我无法从ActionExecuteFilter访问在“razor.cshtml”文件中分配的ViewBag.Title。我可以访问ViewBag。标题仅在ActionExecutedFilter的Action方法中指定

ActionExecuteFilter可以是这样的:

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

如何做到这一点?

我认为这可以解决您的问题。但是它没有使用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>
页眉
@ActionLink(“MyLink”、“Random”,
新的AjaxOptions(){HttpMethod=“GET”,
UpdateTargetId=“随机”,
OnSuccess=“document.title=document.getElementById('mySpan').innerHTML”
});
这里是随机的。

要从局部视图设置为文档标题的值隐藏在范围内(也可以是某些标题
或子标题
的值,具体取决于您的需要)你不考虑使用jQuery请求一个动作并获得一个<代码> JSON<代码>对象来更新你在<代码> Ajax?ActudioLink < /代码>上设置的<代码> UpDATEAGETIDED < /C>元素,并将JSON对象的ANOTER属性应用到<代码>文档>标题< /代码>?如果我可以从过滤器中执行操作,那么你就不能以显示代码的方式执行操作。当您发出ajax请求时,结果很可能是JSON或HTML视图。您需要捕获OnSuccess事件,并使用从操作中获得的结果集更新页面标题。你需要回顾一下MVC是如何工作的,在你的尝试中有一些基本的缺陷。