Asp.net 如何使用@Ajax.ActionLink更新Html文档标题
单击Ajax.ActionLink时,我希望页面标题根据ViewBag.title自动更改。我可以,但我无法从ActionExecuteFilter访问在“razor.cshtml”文件中分配的ViewBag.Title。我可以访问ViewBag。标题仅在ActionExecutedFilter的Action方法中指定 ActionExecuteFilter可以是这样的: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
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是如何工作的,在你的尝试中有一些基本的缺陷。