PDA

View Full Version : سوال: ویرایش آدرس در هنگام استفاده از ruoting



orca13
چهارشنبه 08 آذر 1391, 20:44 عصر
سلام!
من تو پروژم از Routing استفاده کردم، اما برای اینکه در نهایت در اون title ای که میخوام نشون بدم (در نوار آدرس) کاراکتر space رو با - جایگزین کنم، (و همچنین تبدیل به lowercase) صفحه رو به خودش redirect میکنم.

میخوام ببینم که آیا راهه حلی هست که همون جا که لینک ساخته میشه، این تغییر اعمال بشه یا ن!

ممنون میشم اگه راه حلی داره، بگید.

sanaz.dadkhah
پنج شنبه 09 آذر 1391, 21:10 عصر
با جیکوئری می تونی تغییرات را بدی این اولیش


<script type="text/javascript">
$(document).ready(function (event) {

$("a").each(function () {
$(this).attr('href', $(this).attr("href").replace(" ", "_"));

});
});
</script>


راه دیگه تو کد عوض کن


<a href = <%# DataBinder.Eval(Container.DataItem, "sub_group_id").Replace(" ","_").Tostring() %>

orca13
پنج شنبه 09 آذر 1391, 21:47 عصر
ممنون، اون راه حل javaScript که گفتین خوبه، اما من میخوام مشابه اون راه حل دوم رو بدونم و اعمال کنم.

الان من تابع Replace رو که اضافه کردم، خطا داد!
کد من:
NavigateUrl='<%# String.Format("~/page/{0}/{1}", Eval("id"),Eval("title").Replace(" ","-").ToString()) %>'

ممنون

raziee
پنج شنبه 09 آذر 1391, 22:36 عصر
بهتره که این تغییرات یکبار انجام و در بانک ذخیره بشه نه اینکه در هر بار نمایش این تغییرات انجام بشه.
کاراکتر های دیگه ای رو هم باید بررسی کنید.
بهروز راد در "ایجاد URLهای فارسی در ASP.NET MVC و ASP.NET Web Forms (http://www.codepro.ir/25/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-URL%D9%87%D8%A7%DB%8C-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%AF%D8%B1-ASP-NET-MVC-%D9%88-ASP-NET-Web-Forms)" توضیحاتی رو دادند.

public static string GetSafeUrlFromString(this string input)
{
List<char> illegalChars = new List<char>() { '#', '%', '&', '*', '{', '}', '\\', ':', '<', '>', '?', '/', ';', '@', '=', '+', '$', ',' };
input = input.Replace(" ", "-").Replace(".", "-");
illegalChars.ForEach(c =>
{
input = input.Replace(c.ToString(), "");
});

return input;
}

sanaz.dadkhah
پنج شنبه 09 آذر 1391, 22:40 عصر
Text= '<%#Eval("ProductID").ToString().Replace(" ","-") %>'

orca13
جمعه 10 آذر 1391, 08:04 صبح
بهتره که این تغییرات یکبار انجام و در بانک ذخیره بشه نه اینکه در هر بار نمایش این تغییرات انجام بشه.
کاراکتر های دیگه ای رو هم باید بررسی کنید.
بهروز راد در "ایجاد URLهای فارسی در ASP.NET MVC و ASP.NET Web Forms (http://www.codepro.ir/25/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-URL%D9%87%D8%A7%DB%8C-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%AF%D8%B1-ASP-NET-MVC-%D9%88-ASP-NET-Web-Forms)" توضیحاتی رو دادند.

public static string GetSafeUrlFromString(this string input)
{
List<char> illegalChars = new List<char>() { '#', '%', '&', '*', '{', '}', '\\', ':', '<', '>', '?', '/', ';', '@', '=', '+', '$', ',' };
input = input.Replace(" ", "-").Replace(".", "-");
illegalChars.ForEach(c =>
{
input = input.Replace(c.ToString(), "");
});

return input;
}

درود!
ممنون از توجه شما، ولی من نمیخوام یه فیلد به بانک اضافه بشه واسه URL
برنامه طوری هستش که اون title که به عنوان URL استفاده میشه، در همون صفحه باید به عنوان Title و هم وعرفی در بالای صفحه نوشته بشه!
ممنون

raziee
جمعه 10 آذر 1391, 08:49 صبح
درود!
ممنون از توجه شما، ولی من نمیخوام یه فیلد به بانک اضافه بشه واسه URL
برنامه طوری هستش که اون title که به عنوان URL استفاده میشه، در همون صفحه باید به عنوان Title و هم وعرفی در بالای صفحه نوشته بشه!
ممنون
GetSafeUrlFromString یک متد استاتیک هست و شما در هر قسمت از سناریوتون میتونید ازش استفاده کنید.
اما این سناریو که هر درخواستی که به سرور بیاد رو Redirect کنه به یک آدرس دیگه(به دلیل نداشتن آدرس دلخواه) زیاد جالب نیست.
کاربرای شما هیچ وقت لینک دلخواه شما رو ندارند(مگر اینکه از Address bar کپی کنند) و همیشه لینک ای رو درخواست میده که باید Redirect بشه!

orca13
جمعه 10 آذر 1391, 09:25 صبح
Text= '<%#Eval("ProductID").ToString().Replace(" ","-") %>'
ممنون، مشکل حل شد!

orca13
جمعه 10 آذر 1391, 09:35 صبح
GetSafeUrlFromString یک متد استاتیک هست و شما در هر قسمت از سناریوتون میتونید ازش استفاده کنید.
اما این سناریو که هر درخواستی که به سرور بیاد رو Redirect کنه به یک آدرس دیگه(به دلیل نداشتن آدرس دلخواه) زیاد جالب نیست.
کاربرای شما هیچ وقت لینک دلخواه شما رو ندارند(مگر اینکه از Address bar کپی کنند) و همیشه لینک ای رو درخواست میده که باید Redirect بشه!
خب الان بجای استفاده ازون روشی که در قسمت Eval از متد Replace اسفاده میشه، من این تابع رو GetSafeUrlFromString باید صدا بزنم یعنی؟
منظورم اینه که این تابع رو باید کجا صدا بزنم؟
ممنون

sanaz.dadkhah
جمعه 10 آذر 1391, 12:26 عصر
Text='<%# GetSafeUrlFromString(Eval("Rating")) %>'