jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 关于路由和部分视图的MVC 3的SEO建议大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
需要一些建议.我有很少的SEO经验.使用MVC 3为我的妻子新业务建立一个小册子网站.我在顶部使用链接进行了一些导航.

<a class="main" href="/Home/Contact">Contact Us</a>

我正在拦截一些jquery.

ns.BindNavigation = function () {
    $(".nav-bar a").click(function (e) {
        $("#Content").load(this.href);
        return false;
    });
};

Where / Home / Contact返回部分视图.我使用ajax加载的原因是我没有在每次重新加载所有页面内容的点击上获得整页回发.

所以,我在我的网站上运行了一个IIS搜索引擎优化报告,它显示SEO违规和错误,因为/ Home / Contact没有元描述或标题(因为它是一个没有头标记的局部视图,如果你直接导航到那个URL).我的所有其他导航链接也是如此.

我的问题是,最好只为每个部分使用整页回发,以便在每个页面上获得标题和说明吗?或者是否有一些方法仍然使用ajax导航而不搞砸我的SEO.我知道没有完美的答案,所以提前感谢任何输入.

解决方法

当您从控制器操作返回时,MVC3会执行一些特殊操作.当您从控制器返回部分视图结果(返回PartialView();)时,您可以引用“完整视图”,并且剃刀引擎将忽略该视图的布局文件并仅返回内容部分.在您的情况下,您可以检查请求是否是AJAX请求.基于此,返回所请求URL的部分视图的完整视图.您可以在MVC3的认“Internet站点”模板上尝试/ expirament,仅更改两个文件.

首先,您的主页/索引视图:

@{
    ViewBag.Title = "Home Page";
}

<h2>@ViewBag.Message</h2>
<p>
    @Html.ActionLink("This is AJAXy","About","Home",null,new{@class="ajax"})
</p>

<div id="AjaxContent"></div>

<script type="text/javascript">
    $(document).ready(function () {
        $(".ajax").click(function (e) {
            e.preventDefault();
            alert("clicked");
            $.ajax({
                url: this.href,dataType: 'html',success: function (data) {
                    $('#AjaxContent').html(data);
                    alert('Load was performed.');
                }
            });
        });
    });
</script>

我是AJAXing主页/关于操作的链接.在认模板中,您仍然在顶角的认模板导航部分中有完整的请求链接以进行测试.

接下来,您的家庭控制器

使用System.Web.Mvc;

namespace MvcApplication6.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Welcome to ASP.NET MVC!";

            return View();
        }

        public ActionResult About()
        {
            if(Request.IsAjaxRequest())
            {
                return this.PartialView();
            }
            return View();
        }
    }
}

现在,只有这两项内容认项目模板中更改,单击主导航中的“关于”链接可以完整请求并显示“关于”页面,包括页面标题,所有头部信息等.但是,单击Home / Index视图中的ajax链接将对该信息执行AJAX请求.您将看到AjaxReponse div仅填充了About视图的HTML,其他任何东西(布局等)都不会出现.

实现这样的东西不仅有助于你的SEO,而且不使用JavaScript的人仍然可以使用你的网站,完全运作.

编辑

在上面的例子中,你不能使用.load函数(至少在我的测试中).原因:.load没有设置X-Requested-With标头来标识它是一个AJAX请求.我确信有一些解决方法,但注意到你正在使用它,并认为如果你选择走这条路线可能会造成旅行危险.

大佬总结

以上是大佬教程为你收集整理的jquery – 关于路由和部分视图的MVC 3的SEO建议全部内容,希望文章能够帮你解决jquery – 关于路由和部分视图的MVC 3的SEO建议所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: