从局部视图将css文件放在头部

时间:2012-03-15 15:13:51

标签: jquery asp.net-mvc asp.net-mvc-2

您好我试图从局部视图或控制器(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中设置头部内容的方法。                 });

2 个答案:

答案 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');