سلام بر حضرات دوستان
می خواستم برای صفحات پروژه ی خودم، لینک کوتاه چیزی شبیه به همین لینک کوتاه صفحات تاپ لرن ایجاد کنم.
میشه یه راهنمایی کوچیک در حد ارجاع به مقاله یا آموزشی ارائه بدهید.
با تشکر و احترام
لینک زیر را بررسی کنید:
سلام خدا بر سهیل عزیز
نه متاسفانه این لینک پر از ایراد بود و اصلا جواب دلخواه را نمی داد.
خیلی از سورس های موجود در وب را بررسی کردم اما اکثرا یا با API گوگل گفتند یا اصلا کدهاشون چرت و پرت جواب میده
public static class UrlShortener { private static readonly string _alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; private static readonly int _base = 62; public static string Encode(int num) { var sb = new StringBuilder(); while ( num > 0 ) { sb.Append( _alphabet[( num % _base )] ); num /= _base; } var builder = new StringBuilder(); for (var i = sb.Length - 1; i >= 0; i--) { builder.Append(sb[i]); } return builder.ToString(); } public static int Decode(string str) { var num = 0; for ( int i = 0, len = str.Length; i < len; i++ ) { num = num * _base + _alphabet.IndexOf( str[(i)] ); } return num; } }
کد بالا شامل دو متد می باشد به نام EnCode و DeCode متد اول یک عدد دریافت می کند و آن را به یک حرف کوچک تبدیل می کند مثلا عدد 300 می شود e0 ، متد دوم عکس متد اول عمل می کند و آن را به حالت قبل باز می گرداند.
شما باید کلید اصلی جدول خود را EnCode کنید و بر اساس آن جستجو کنید تا لینکتان کوتاه شود.
بسیار ممنون از وقتی که برای اینجانب گذاشتید.
الان تونستم یه جوابی بگیرم فقط یه سوال برام پیش اومد که احتمالا ناشی از فهم بد بنده می باشد.
یعنی من باید کلید اصلی تیبل خود را encode کرده و ان را به بیننده نشان بدهم؟!؟!؟!؟!
خب برای routing از جداول مختلف از کجا باید بفهمم که این لینک برای کدام جدول است؟!؟!؟
باز هم شرمنده که وقتتان را می گیرم
یک Controller ایجاد کنید با یک نام کوتاه مثلا p (بهتر است نام آن در Route تعریف شود نه خود کلاس Controller) سپس یک اکشن ایجاد کنید که یک پارامتر میگیرد به string دریافت می کند پارامتر دریافتی همان کلید Encode شده است آن را DeCode می کنیم و کلید اصلی را به دست آوریم سپس یه کوئری به بانک زده و اطلاعات را واکشی می کنیم.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)