iman mohadesi
چهارشنبه 03 مهر 1392, 12:23 عصر
یه آموزش کوچولو(MVCSiteMapProvider)
سلام من ایمان محدثی هستم iman.mohadesi@gmail.com
بیکار بودم گفتم یه آموزش بدم.
آموزش چی؟ ایجاد SiteMap در MVC .
خوب اول باید چکار کنم؟
اول از همه یه فنجان چای بنوش.
بعد یه پروژه جدید اونم از نوع MVC4 ایجاد کن.
خوب بعد؟
از منوی Tools ، library Package Manager و بعد Manage Nuget Packages for Solution
را انتخاب کنید.
یه پنجره دیگه واسم باز شد . باید چکار کنم !!
پکیج MVCSITEMAPPROVIDER را در قسمت Online جستجو کنید و منتظر بمانید تا یافته شود.
از پکیج های یافته شده MVCSITEMAPPROVIDER .MVC4 را برگزینید و دکمه Install را بکلیکید.
بعد از نصب اتفاقاتی در پروژه رخ داده.
چه اتفاقی؟
مشهود ترینشان ایجاد یه پوشه به نام Display Template اگه از قبل وجود نداشته .
توی پوشه چه خبر؟
یه سری Template واسه نمایش SiteMap
دیگه چی؟
به فایل به نام MVC.sitemap در روت پروژه ایجاد شده
این فایل دیگه چی؟
توش یه سری کدهای XMLیی ؟
واسه چی هستن؟
توش رو ببین دستت میاد؟
چه جور باید از این پکیج استفاده کنم؟
میتونید از Helperهای زیر استفاده کنید
@Html.MvcSiteMap().Menu()
@Html.MvcSiteMap().SiteMapPath()
اولی منو رو میسازه و دومی Sitemap که ما با دومی کار داریم.
پسر خوب برو یه PartialView در پوشه Shared پروژه ایجاد کن.اسمشو رو بذار _SitemapPartial
کدهای زیر رو توش قرار بده
@model MvcSiteMapProvider.Web.Html.Models.MenuHelperModel
@using System.Web.Mvc.Html
@using MvcSiteMapProvider.Web.Html.Models
@Html.MvcSiteMap().SiteMapPath()
خط اول مدل مورد نیاز پروژه هست.با کلید F12 به Source این مدل هدایت می شوید
دو خط بعد هم که فضا نام های مورد نیاز هستن تا بتونیم از MvcSitemap Helper استفاده کنیم.
و خط آخر هم که helper مورد نیاز ماست.
در فایل Layout هر جا که دوست داشتید _sitemapPartial رو فراخوانی کنید .مانند زیر
<div>
@Html.Partial("_SiteMapPartial")
</div>
پروژه رو اجرا کنید . SiteMap رو باعنوان Home خواهید دید
از منو سایت به صفحه About بروید .SiteMap همانند زیر خواهد شد
Home > About
میگم خوشم از ریختش نیومد
چرا اخه؟
دوست دارم همانند شکل ضمیمه و فارسی هم تازه باشه
خوب باشه
پس اول بیا فایل MVC.sitemap را همانند کدهای زیر ویرایش کن
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0"
xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">
<mvcSiteMapNode title="صفحه اصلی" controller="Home" action="Index" imageUrl="~/Images/navbit-home.png" >
<mvcSiteMapNode title="درباره ما" controller="Home" action="About">
<mvcSiteMapNode title="تماس با ما" controller="Home" action="Contact" />
</mvcSiteMapNode>
</mvcSiteMapNode>
</mvcSiteMap>
اونجا رو که HighLight کردم میدونی واسه چی ؟
واسه چی ؟
میخوام به عکس کنار متن صفحه اصلی قرار داده بشه ، ولی نشد .
چرا؟
متاسفانه کار نمیده کلیSearch کردم تا فهمیدم یه باگ داره.
ولی یه کار دیگه کردم واسه شکل کنار صفحه اصلی
چکار ؟
فایل SiteMapPathHelperModel.cshtml در پوشه Display Template مانند کدهای زیر ویرایش کن
@model MvcSiteMapProvider.Web.Html.Models.SiteMapPathHelp erModel
@using System.Web.Mvc.Html
@using System.Linq
@using MvcSiteMapProvider.Web.Html.Models
<text><img src="~/Images/navbit-home.png" /> </text> //عکس کنار صفحه اصلی
@foreach (var node in Model) {
@Html.DisplayFor(m => node);
if (node != Model.Last()) {
<img src="~/Content/navbit-arrow-left.png" />بجای علامت بی ریخت یه دونه عکس گذاشتم//
}
}
خوب حالا پروژه را اجرا کن.
دوسش داری؟
بابا اصلا من از چرت و پرت های تو سر در نیاوردم .
اوکی پس میخای کاملا همه چی رو یاد بگیری
اره.
پس به آدرس های زیر برو
http://edspencer.me.uk/2011/09/20/mvc-sitemap-provider-tutorial-2-breadcrumbs/
https://github.com/maartenba/MvcSiteMapProvider
سلام من ایمان محدثی هستم iman.mohadesi@gmail.com
بیکار بودم گفتم یه آموزش بدم.
آموزش چی؟ ایجاد SiteMap در MVC .
خوب اول باید چکار کنم؟
اول از همه یه فنجان چای بنوش.
بعد یه پروژه جدید اونم از نوع MVC4 ایجاد کن.
خوب بعد؟
از منوی Tools ، library Package Manager و بعد Manage Nuget Packages for Solution
را انتخاب کنید.
یه پنجره دیگه واسم باز شد . باید چکار کنم !!
پکیج MVCSITEMAPPROVIDER را در قسمت Online جستجو کنید و منتظر بمانید تا یافته شود.
از پکیج های یافته شده MVCSITEMAPPROVIDER .MVC4 را برگزینید و دکمه Install را بکلیکید.
بعد از نصب اتفاقاتی در پروژه رخ داده.
چه اتفاقی؟
مشهود ترینشان ایجاد یه پوشه به نام Display Template اگه از قبل وجود نداشته .
توی پوشه چه خبر؟
یه سری Template واسه نمایش SiteMap
دیگه چی؟
به فایل به نام MVC.sitemap در روت پروژه ایجاد شده
این فایل دیگه چی؟
توش یه سری کدهای XMLیی ؟
واسه چی هستن؟
توش رو ببین دستت میاد؟
چه جور باید از این پکیج استفاده کنم؟
میتونید از Helperهای زیر استفاده کنید
@Html.MvcSiteMap().Menu()
@Html.MvcSiteMap().SiteMapPath()
اولی منو رو میسازه و دومی Sitemap که ما با دومی کار داریم.
پسر خوب برو یه PartialView در پوشه Shared پروژه ایجاد کن.اسمشو رو بذار _SitemapPartial
کدهای زیر رو توش قرار بده
@model MvcSiteMapProvider.Web.Html.Models.MenuHelperModel
@using System.Web.Mvc.Html
@using MvcSiteMapProvider.Web.Html.Models
@Html.MvcSiteMap().SiteMapPath()
خط اول مدل مورد نیاز پروژه هست.با کلید F12 به Source این مدل هدایت می شوید
دو خط بعد هم که فضا نام های مورد نیاز هستن تا بتونیم از MvcSitemap Helper استفاده کنیم.
و خط آخر هم که helper مورد نیاز ماست.
در فایل Layout هر جا که دوست داشتید _sitemapPartial رو فراخوانی کنید .مانند زیر
<div>
@Html.Partial("_SiteMapPartial")
</div>
پروژه رو اجرا کنید . SiteMap رو باعنوان Home خواهید دید
از منو سایت به صفحه About بروید .SiteMap همانند زیر خواهد شد
Home > About
میگم خوشم از ریختش نیومد
چرا اخه؟
دوست دارم همانند شکل ضمیمه و فارسی هم تازه باشه
خوب باشه
پس اول بیا فایل MVC.sitemap را همانند کدهای زیر ویرایش کن
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0"
xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">
<mvcSiteMapNode title="صفحه اصلی" controller="Home" action="Index" imageUrl="~/Images/navbit-home.png" >
<mvcSiteMapNode title="درباره ما" controller="Home" action="About">
<mvcSiteMapNode title="تماس با ما" controller="Home" action="Contact" />
</mvcSiteMapNode>
</mvcSiteMapNode>
</mvcSiteMap>
اونجا رو که HighLight کردم میدونی واسه چی ؟
واسه چی ؟
میخوام به عکس کنار متن صفحه اصلی قرار داده بشه ، ولی نشد .
چرا؟
متاسفانه کار نمیده کلیSearch کردم تا فهمیدم یه باگ داره.
ولی یه کار دیگه کردم واسه شکل کنار صفحه اصلی
چکار ؟
فایل SiteMapPathHelperModel.cshtml در پوشه Display Template مانند کدهای زیر ویرایش کن
@model MvcSiteMapProvider.Web.Html.Models.SiteMapPathHelp erModel
@using System.Web.Mvc.Html
@using System.Linq
@using MvcSiteMapProvider.Web.Html.Models
<text><img src="~/Images/navbit-home.png" /> </text> //عکس کنار صفحه اصلی
@foreach (var node in Model) {
@Html.DisplayFor(m => node);
if (node != Model.Last()) {
<img src="~/Content/navbit-arrow-left.png" />بجای علامت بی ریخت یه دونه عکس گذاشتم//
}
}
خوب حالا پروژه را اجرا کن.
دوسش داری؟
بابا اصلا من از چرت و پرت های تو سر در نیاوردم .
اوکی پس میخای کاملا همه چی رو یاد بگیری
اره.
پس به آدرس های زیر برو
http://edspencer.me.uk/2011/09/20/mvc-sitemap-provider-tutorial-2-breadcrumbs/
https://github.com/maartenba/MvcSiteMapProvider