您好我试图从局部视图或控制器(mvc)将链接文件放在头部但是无法弄清楚或找到任何好的mvc 2示例,任何人都有想法?
我试过this Jim Tollan的评论
它为我提供了以下内容,我不确定这是否有益?
<script type='text/javascript'>
$(function(){
$('head').prepend('<link rel="canonical" href="/product/productname/productid"></link>');
});
</script>
我很感激任何帮助,我现在可以整天抓住这个问题。
EDIT
这是我当前的代码(这只是复制我的真实场景的模型代码)
在索引页面上
头部内容
<asp:Content ID="Content3" ContentPlaceHolderID="HeadContent" runat="server">
<%: ViewData["Message"] %>
</asp:Content>
身体
<div id="container">
empty
</div>
<a href="#" class="click-me">Click me</a>
控制器动作
public ActionResult Index()
{
ViewData["Message"] = "this is";
return View();
}
[HttpPost]
public PartialViewResult Index(string value)
{
ViewData["Message"] = "this is not";
return PartialView("_homePartial");
}
jquery的
$(".click-me").click(function () {
$.post("/Home/Index", function (data) { $('#container').html(data); }, "html");
就是这样,显而易见的是,viewdata是在控制器中的post动作中设置的,但是之后没有设置,这就是为什么我需要一个jquery解决方案或者在parialview中设置头部内容的方法。 });
答案 0 :(得分:0)
由于您使用的是Mvc 2,因此您可以使用ViewData
。
使用适当的链接在局部视图中设置ViewData。
ViewData["productlink"] = "/product/productname/productid";
在布局页面中将此代码放在head
部分
if(ViewData["productlink"] != null){
<link rel="canonical" href="<%= ViewData["productlink"].toString() %>"></link>
}
答案 1 :(得分:0)
我还必须了解这个解决方案的效果并对其进行监控,但这就是我最终要做的事情。我把它放在我的局部视图中就是这样。如果有人对这个好坏有任何评论,请告诉我。
$('head').append('content');