نمایش نتایج 1 تا 6 از 6

نام تاپیک: سایت مپ در mvc

  1. #1

    سایت مپ در mvc

    سلام دوستان

    من میخام بصورت اتوماتیک برای وبسایتم سایت مپ تهیه کنم.ممنون میشم راهنمایی کنید از چه روشی استفاده کنم که هم سرعت بالایی داشته باشه و هم خیلی سریع و سبک باشه؟

    ممنون

  2. #2

    نقل قول: سایت مپ در mvc


  3. #3

    نقل قول: سایت مپ در mvc

    ببخشید من درست متوجه نشدم.کلاسهای زیر رو باید کجا بنویسم؟باید یه کلاس به نام sitemap بنویسم؟ممنون

    public class SitemapNode
    {
    public SitemapFrequency? Frequency { get; set; }
    public DateTime? LastModified { get; set; }
    public double? Priority { get; set; }
    public string Url { get; set; }
    }

    public enum SitemapFrequency
    {
    Never,
    Yearly,
    Monthly,
    Weekly,
    Daily,
    Hourly,
    Always
    }



    public IReadOnlyCollection<SitemapNode> GetSitemapNodes(UrlHelper urlHelper)
    {
    List<SitemapNode> nodes = new List<SitemapNode>();

    nodes.Add(
    new SitemapNode()
    {
    Url = urlHelper.AbsoluteRouteUrl("HomeGetIndex"),
    Priority = 1
    });
    nodes.Add(
    new SitemapNode()
    {
    Url = urlHelper.AbsoluteRouteUrl("HomeGetAbout"),
    Priority = 0.9
    });
    nodes.Add(
    new SitemapNode()
    {
    Url = urlHelper.AbsoluteRouteUrl("HomeGetContact"),
    Priority = 0.9
    });

    foreach (int productId in productRepository.GetProductIds())
    {
    nodes.Add(
    new SitemapNode()
    {
    Url = urlHelper.AbsoluteRouteUrl("ProductGetProduct", new { id = productId }),
    Frequency = SitemapFrequency.Weekly,
    Priority = 0.8
    });
    }

    return nodes;
    }

    public class UrlHelperExtensions
    {
    public static string AbsoluteRouteUrl(
    this UrlHelper urlHelper,
    string routeName,
    object routeValues = null)
    {
    string scheme = urlHelper.RequestContext.HttpContext.Request.Url.S cheme;
    return urlHelper.RouteUrl(routeName, routeValues, scheme);
    }
    }
    Now all we have to do is turn our collection of SitemapNode’s into XML:
    Converting SitemapNode's to XML











    C#‎


    public string GetSitemapDocument(IEnumerable<SitemapNode> sitemapNodes){ XNamespace xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9"; XElement root = new XElement(xmlns + "urlset"); foreach (SitemapNode sitemapNode in sitemapNodes) { XElement urlElement = new XElement( xmlns + "url", new XElement(xmlns + "loc", Uri.EscapeUriString(sitemapNode.Url)), sitemapNode.LastModified == null ? null : new XElement( xmlns + "lastmod", sitemapNode.LastModified.Value.ToLocalTime().ToStr ing("yyyy-MM-ddTHH:mm:sszzz")), sitemapNode.Frequency == null ? null : new XElement( xmlns + "changefreq", sitemapNode.Frequency.Value.ToString().ToLowerInva riant()), sitemapNode.Priority == null ? null : new XElement( xmlns + "priority", sitemapNode.Priority.Value.ToString("F1", CultureInfo.InvariantCulture))); root.Add(urlElement); } XDocument document = new XDocument(root); return document.ToString();}
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public string GetSitemapDocument(IEnumerable<SitemapNode> sitemapNodes)
    {
    XNamespace xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9";
    XElement root = new XElement(xmlns + "urlset");

    foreach (SitemapNode sitemapNode in sitemapNodes)
    {
    XElement urlElement = new XElement(
    xmlns + "url",
    new XElement(xmlns + "loc", Uri.EscapeUriString(sitemapNode.Url)),
    sitemapNode.LastModified == null ? null : new XElement(
    xmlns + "lastmod",
    sitemapNode.LastModified.Value.ToLocalTime().ToStr ing("yyyy-MM-ddTHH:mm:sszzz")),
    sitemapNode.Frequency == null ? null : new XElement(
    xmlns + "changefreq",
    sitemapNode.Frequency.Value.ToString().ToLowerInva riant()),
    sitemapNode.Priority == null ? null : new XElement(
    xmlns + "priority",
    sitemapNode.Priority.Value.ToString("F1", CultureInfo.InvariantCulture)));
    root.Add(urlElement);
    }

    XDocument document = new XDocument(root);
    return document.ToString();
    }



  4. #4

    Thumbs up نقل قول: سایت مپ در mvc

    بله ، کلاس هایی شامل :

    public class SitemapNode
    {
    public SitemapFrequency? Frequency { get; set; }
    public DateTime? LastModified { get; set; }
    public double? Priority { get; set; }
    public string Url { get; set; }
    }

    public enum SitemapFrequency
    {
    Never,
    Yearly,
    Monthly,
    Weekly,
    Daily,
    Hourly,
    Always
    }

    public IReadOnlyCollection<SitemapNode> GetSitemapNodes(UrlHelper urlHelper)
    {
    List<SitemapNode> nodes = new List<SitemapNode>();

    nodes.Add(
    new SitemapNode()
    {
    Url = urlHelper.AbsoluteRouteUrl("HomeGetIndex"),
    Priority = 1
    });
    nodes.Add(
    new SitemapNode()
    {
    Url = urlHelper.AbsoluteRouteUrl("HomeGetAbout"),
    Priority = 0.9
    });
    nodes.Add(
    new SitemapNode()
    {
    Url = urlHelper.AbsoluteRouteUrl("HomeGetContact"),
    Priority = 0.9
    });

    foreach (int productId in productRepository.GetProductIds())
    {
    nodes.Add(
    new SitemapNode()
    {
    Url = urlHelper.AbsoluteRouteUrl("ProductGetProduct", new { id = productId }),
    Frequency = SitemapFrequency.Weekly,
    Priority = 0.8
    });
    }

    return nodes;
    }

    public class UrlHelperExtensions
    {
    public static string AbsoluteRouteUrl(
    this UrlHelper urlHelper,
    string routeName,
    object routeValues = null)
    {
    string scheme = urlHelper.RequestContext.HttpContext.Request.Url.S cheme;
    return urlHelper.RouteUrl(routeName, routeValues, scheme);
    }
    }

    public string GetSitemapDocument(IEnumerable<SitemapNode> sitemapNodes)
    {
    XNamespace xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9";
    XElement root = new XElement(xmlns + "urlset");

    foreach (SitemapNode sitemapNode in sitemapNodes)
    {
    XElement urlElement = new XElement(
    xmlns + "url",
    new XElement(xmlns + "loc", Uri.EscapeUriString(sitemapNode.Url)),
    sitemapNode.LastModified == null ? null : new XElement(
    xmlns + "lastmod",
    sitemapNode.LastModified.Value.ToLocalTime().ToStr ing("yyyy-MM-ddTHH:mm:sszzz")),
    sitemapNode.Frequency == null ? null : new XElement(
    xmlns + "changefreq",
    sitemapNode.Frequency.Value.ToString().ToLowerInva riant()),
    sitemapNode.Priority == null ? null : new XElement(
    xmlns + "priority",
    sitemapNode.Priority.Value.ToString("F1", CultureInfo.InvariantCulture)));
    root.Add(urlElement);
    }

    XDocument document = new XDocument(root);
    return document.ToString();
    }




    در Web.Config :

    <configuration>
    <system.webServer>
    <handlers>
    <add name="SitemapXml" path="sitemap.xml" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    </system.webServer>
    </configuration>


    و در کنترلر :

    [RoutePrefix("")]
    public class HomeController : Controller
    {
    [Route("sitemap.xml")]
    public ActionResult SitemapXml()
    {
    var sitemapNodes = GetSitemapNodes(this.Url);
    string xml = GetSitemapDocument(sitemapNodes);
    return this.Content(xml, ContentType.Xml, Encoding.UTF8);
    }
    }


    در صورت نیاز میتونید ASP.NET MVC Boilerplate Project Template رو دانلود کنید تا پروژه رو داشته باشید .
    آخرین ویرایش به وسیله Moien Tajik : چهارشنبه 03 خرداد 1396 در 15:45 عصر

  5. #5

    نقل قول: سایت مپ در mvc

    سلام ممنون از راهنماییتون

    من قسمت کلاسها رو متوجه نمیشم.به هر صورتی هم که مینویسم ارور دارم.ممنون میشم راهنمایی کنید این کلاسها رو چطور باید مرتب کنم؟

  6. #6

    نقل قول: سایت مپ در mvc


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •