• 1400/01/22

لینک داخلی در ASp core :

با سلام استاد می خواستم ببینم بهترین راه برای ایجاد لینک داخلی تو asp core چیه؟

 

مثلا روی صفحه اصلی یه سری مقاله می خواهیم بذاریم که لینکش بدیم به صفحه کاملش

دیگه این رو که نباید تو بانک ببریم که درسته ؟

باید یه اکشن بسازیم توی همون صفحه اصلی و یه view براش بسازیم .؟

  • 1400/01/22
  • ساعت 10:41

سلام 

بله دوست من ، در همین دوره داشتیم نمایش محصولات به همین شکل عمل کنید 


  • 1400/01/22
  • ساعت 10:57

خوب برای لینک اون متن به صفحه داخلیش - که ساختیم باید از تگ هلپر استفاده کنیم ؟


  • 1400/01/22
  • ساعت 11:54

و اینکه فرض کنید توی پوشه home یه فلدر بسازیم به نام links حالا ایتم های توی لینک رو چطوری باید ادرس بدیم؟

چون با استفاده از تگ هلپر که فایل های توی home رو ادرس میده 


  • 1400/01/22
  • ساعت 11:55

و اینکه فرض کنید توی پوشه home یه فلدر بسازیم به نام links حالا ایتم های توی لینک رو چطوری باید ادرس بدیم؟

چون با استفاده از تگ هلپر که فایل های توی home رو ادرس میده 


  • 1400/01/22
  • ساعت 12:08

تا انتهای دوره ببینید متوجه خواهید شد 


  • 1400/01/22
  • ساعت 12:12

دیدم استاد تا انتها 

فقط الان برای تمیزی یه فلدر ساختم تو 

Views-->Home-->-->Links

 

 میخوام تو تک هلپر لینک رو بدم به فایلی که توی فلدر Links هست 

نمیشه :(


  • 1400/01/22
  • ساعت 12:15

سلام دوست عزیز، اصلا نیازی به ساخت لینک نیست !

شما فرض کنید یک Action دارید بنام Article  که یک View هم با همین نام براش ساختید و مربوط به مقاله های شما هستن ،توی Action لیست همه مقاله هارو از بانک واکشی میکنید و توی View به هرصورت که دوست دارید به همراه یک لینک که مقدار Id اون مقاله هست رو نمایش میدید. 

لینک به این صورت هست :

<a asp-controller="نام کنترلر" asp-action=" نام اکشن که در ادامه مثال زدم" asp-route-id="فیلد آی دی مقاله" > Show Article </a>

بعد باید یه Action  و یک View بعنوان مثال بنام ArticleDetails بسازید که پارامتر ورودی اون Action باید Id مقاله باشه، توی این Action باید از دیتابیس کوئری بزنید و اون مقاله رو پیدا کنید و بفرستید به View ، دیگه توی ویو هم به هر شکلی دوست دارید میتونید اون مقاله رو نشون بدید


  • 1400/01/22
  • ساعت 12:16

داخل ویو دسترسی ندارید 

فقط به کنترلر ها میتونید لینک بدید و فایلهای Static


  • 1400/01/22
  • ساعت 12:18

جسارتا کاری که شما دارید انجام میدید نه اصولی هست نه کارتون رو تمیز میکنه بلکه باعث سردرگمی و پیچیدگی هم میشه ! از طرفی به سئو سایتتون هم لطمه میزنه

پیشنهاد میکنم طبق آموزش های استاد همونطور که من براتون توضیح دادم عمل کنید

موفق باشید


  • 1400/01/22
  • ساعت 12:20

اخه تقریبا مقاله ها استتیک هست

فرض کنید یه حدولی روی صفحه اصلی هست که اون مثلا ۲۰ تا لینک داره که لینک هست به متن اصلی مقاله ها(‌مقاله ها هم همینه قرار نیست تغییر یا اضافه بشه)

باز باید برای این هم از دیتا بیس استفاده بشه؟

من اکشن هاشو توی HomeController ساختم و بعد ویو هاشو

فقط اگه فایل ویو توی فلدر Home باشه میاد الان


  • 1400/01/22
  • ساعت 12:25

مقاله هاتون توی چه قالبی هستن ؟ بصورت فایل pdf, word و ... هستن یا فایل html ؟

بصورت کلی اگر توی دیتابیس قرار بگیرن خیلی بهتره چون هرزمان مقاله ای اضافه بشه چون شما توی کنترلرتون دارید لیست همه مقاله هارو واکشی میکنید دیگه نیازی به هیچ تغییری از طرف شما نیست اما اگر دارید بصورت فایل کار میکنید اینطوری اگه حتی 1 درصد هم وجود داشته باشه که مقاله ای بخواد اضافه بشه شما مجبور هستید دوباره تغییرات اعمال کنید و لینک جدید بسازید و پابلیش کنید


  • 1400/01/22
  • ساعت 12:30

بله کاملا متوجه ام چی میکید

اما الان چون یه سایتی هست که قبلا طراحی شده و مقاله ها دیگه اضافه نمیشه 

فرض کنید روی صفحه اصلی یه جدول سه ستون داریم که تو هر ستون ۱۰ سطره 

که اینها اسم مقاله هاست

حالا روی هر کدوم کلیک میکنیم میره تو یه صفحه html

من توی کنترلر اصلی اکشن هر کدوم رو ساختم بعد ویو ساختم 

الان می خوام برای تمیزی فایل های اینا رو بذارم توی یه فلدر مثلا:

Views-->Home-->-->Links

اما با تگ هلپر نمی تونم لینک بدم ؟

چطوری باید بکم بره ویو رو از فلدر  Links بخونه

 

درسته کارم ؟


  • 1400/01/22
  • ساعت 13:07

بااینکه کلا ماهیت این کار اشتباهه پشنهادم اینه اگر مقاله ها درقالب فایل Html هستن و با کلیک روی لینک ها به اون صفحه ها هدایت میشن اصلا نیازی به ساخت اکشن و کنترلر توسط شماهم نیست ! میتونید پوشه ی Link رو که حاوی فایل های html هستن توی پوشه wwwroot قرار بدید و بعد با یه تگ a از خصوصیت href اون استفاده کنید و مسیر فایل هارو مشخص کنید بعنوان مثال :

<a href="Links\Article1.html" target="_balnk"> مقاله 1 </a>

 


  • 1400/01/22
  • ساعت 16:15

منظور من از اینکه فایل html هست در سایت قبلی بوده 

الان هم من باید همون طوری درستش کنم

خوب اگه بخوام اینکاری که گفتید بکنم الان توی asp core 

فایل هر صفحه رو جطوری بسازم تنها؟

تازه هر صفحه استایل و شکل هم داره 

قبلا با   asp ساخته شده سایت و فقط فایل های aspx هر فایل رو دارم که دسترسی به محتواش دارم 


  • 1400/01/23
  • ساعت 09:12

وقتی فرمودید html اون رو دارید من فکرکردم برای هر صفحه یه فایل html دارید برای همین اون توضیح رو دادم خدمتتون ! از طرفی توضیحمم کامل بود اگر متوجه منظورم نشدید بگید تا براتون بازترش کنم

عذرخواهی میکنم اما دوست عزیز شما زمانی که دارید تکنولوژی و معماری کارتون رو تغییر میدید باید به روش خودش پیش برید نه اینکه از همون روش قبل اما با تکنولوژی جدید شروع به کار کنید ! این اصلا منطقی نیست !

درعین حال شما میتونید :

1. به ازای هر مقاله یه اکشن و یه ویو درست کنید (یعنی 20 تا اکشن و 20 تا ویو)

2.یا اینکه یک اکشن و 20 تا ویو درست کنید ، به لینک هاتون  یه Id بصورت دستی بدید و توی اکشن با Switch اون id رو بررسی کنید و پاسش بدید به ویو مربوط به خودش


  • 1400/01/23
  • ساعت 13:46

یه دنیا ممنون از توضیح کاملتون

بله نداشتم همین راه اول که گفتید رو هم رفتم 

باز کفتم شاید این مسیر اشتباه باشه سوال پرسیدم

 

و یه سوال کلی 

مثلا در مواردی که این طوری هست و مقاله هست روی سایت و مقاله ها هر کدوم ۵و۶ صفحه طولانی هست

این روند که در این حالت از دیتا بیس استفاده کنیم معمول هست؟

متوجه شدم برای تغییر در اینده می فرمایید از دیتا بیس..

ولی سوالم اینه برای دیتای این قدر زیاد هم باشه میشه از دیتا بیس استفاده کرد یعنی معمول هست اینکار؟


  • 1400/01/28
  • ساعت 08:22

خواهش میکنم

بصورت کلی که هم استاد عرض کردن هم من گفتم خدمتتون که بصورت کلی کلا اینکار اشتباهه

و درخصوص اون سوال کلی که پرسیدید جوابش "خیر" هست و بصورت معمول وقتی دیتا زیاد میشه از Db استفاده نشه شاید بهتر بشاه چون زمانی که اطلاعاتتون زیاد بشه بصورت عادی نمیتونید توی یه فیلد String اون اطلاعات رو ذخیره کنید و باید فیلدتون از نوع فایل باشه

من فکرمیکنم بهتری راه اینه اگه رو هاست فضای کافی دارید مقاله ها رو بصورت فایل های PDF به کاربراتون ارائه بدید که با کلیک روی لینکشون فایل رو دانلود کنن

موفق باشید


logo-samandehi