PDA

View Full Version : سوال: لینک دادن به صفحات در برنامه



zakieh
دوشنبه 16 اسفند 1389, 12:52 عصر
با سلام

من برنامه ای با C#.NET و ASP.NET نوشتم. در این برنامه با دستور Respons.Redirect به صفحات داخلی برنامه میرم.
ولی وقتی برنامه رو روی ویندوز سرور2008 راه اندازی کردم، تغییر آدرسی که به شکل زیر هست کار نمیکنه و اصلا صفحه رو پیدا نمیکنه.

Respons.Redirect("../report/report1.aspx"(

یعنی وقتی به روت برمیگرده کارنمیکنه.

به نظرتون مشکل کجاست؟
ممنون

mohitlog
دوشنبه 16 اسفند 1389, 13:06 عصر
Respons.Redirect("~/report/report1.aspx"(

mehrdad85
دوشنبه 16 اسفند 1389, 13:21 عصر
سلام
دوست عزیز ساده ترین راه اینه که داخل یه فرم یه button بذاری و بعد postbackurl اونا ست بکنی به همون صفحه ای که میخای Redirect کنی
و بعد ادرس را برداری و بری حالشو ببری!!!!:چشمک:
یعنی اونا کپی کنی و هرجا که نیاز داشتی ازش استفاده کنی

موفق باشی

zakieh
دوشنبه 16 اسفند 1389, 13:46 عصر
Respons.Redirect("~/report/report1.aspx"(
سلام ممنون از پاسختون

یعنی به جای .. از ~ استفاده کنم؟؟؟ همین؟

zakieh
دوشنبه 16 اسفند 1389, 13:47 عصر
سلام
دوست عزیز ساده ترین راه اینه که داخل یه فرم یه button بذاری و بعد postbackurl اونا ست بکنی به همون صفحه ای که میخای Redirect کنی
و بعد ادرس را برداری و بری حالشو ببری!!!!:چشمک:
یعنی اونا کپی کنی و هرجا که نیاز داشتی ازش استفاده کنی

موفق باشی

ممنون
میشه با مثال توضیح بدین؟

mehrdad85
دوشنبه 16 اسفند 1389, 14:00 عصر
سلام
واضحه دیگه از چی مثال بزنم؟
بذارید بیشتر توضیح بدم شاید بد بیان کردم
ببین داخل هر کدوم از صفحات پروژت که دوست داری(اصلا تفاوتی نمیکنه) یک button میذاری(یک button از toolbox میندازی توصفحه )
بعد از پنجره properties خصوصیت postbackurl را پیدا میکنی
کنار اون خصوصیت یه دکمه هست که آدرس را با اون مشخص میکنن
روی اون کلیک کن
کلیه صفحاتی که داخل پروژت هست را داخل یک صفحه نشون میده
هر کدوم از صفحاتی را که دوست داری به اون redirect بشی انتحاب میکنی و ok را میزنی و دیگه هیچ کاری نمیکنی
خودش آدرس صفحه انتخابی را جلوی اون خصوصیت یعنی(postbackurl) مینویسه
تا اینجا درست؟
خوب الان کافیه که اون آدرسی را که تولید کرده کپی کنی و به جای address در کد زیر وارد کنی

response.redirect("address");
در نهایت دکمه ای که همون اول انداخته بودی داخل صفحه را پاک میکنی چون ما اون دکمه را تولید کردیم فقط و فقط بخاطر اینکه با اون بتونیم آدرس صفحه مورد نظرمون را تولید کنیم
همین
امیدوارم تونسته باشم منظور را برسونم
اگه مشکلی بود خوشحال میشم کمکتون کنم
اگه متوجه نشدید بفرمایید تا باز توضیح بدم

موفق باشید

masoudasgari
دوشنبه 16 اسفند 1389, 14:15 عصر
سلام
این کد آدرس بیس رو برمیگردونه
میتونی برای آدرس دهی ها از این استفاده کنی

public static string _BaseSiteUrl
{
get
{
HttpContext context = HttpContext.Current;
string baseUrl = context.Request.Url.Scheme + "://" + context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/') + '/';
return baseUrl;
}
}

zakieh
دوشنبه 16 اسفند 1389, 15:54 عصر
سلام
واضحه دیگه از چی مثال بزنم؟
بذارید بیشتر توضیح بدم شاید بد بیان کردم
ببین داخل هر کدوم از صفحات پروژت که دوست داری(اصلا تفاوتی نمیکنه) یک button میذاری(یک button از toolbox میندازی توصفحه )
بعد از پنجره properties خصوصیت postbackurl را پیدا میکنی
کنار اون خصوصیت یه دکمه هست که آدرس را با اون مشخص میکنن
روی اون کلیک کن
کلیه صفحاتی که داخل پروژت هست را داخل یک صفحه نشون میده
هر کدوم از صفحاتی را که دوست داری به اون redirect بشی انتحاب میکنی و ok را میزنی و دیگه هیچ کاری نمیکنی
خودش آدرس صفحه انتخابی را جلوی اون خصوصیت یعنی(postbackurl) مینویسه
تا اینجا درست؟
خوب الان کافیه که اون آدرسی را که تولید کرده کپی کنی و به جای address در کد زیر وارد کنی

response.redirect("address");
در نهایت دکمه ای که همون اول انداخته بودی داخل صفحه را پاک میکنی چون ما اون دکمه را تولید کردیم فقط و فقط بخاطر اینکه با اون بتونیم آدرس صفحه مورد نظرمون را تولید کنیم
همین
امیدوارم تونسته باشم منظور را برسونم
اگه مشکلی بود خوشحال میشم کمکتون کنم
اگه متوجه نشدید بفرمایید تا باز توضیح بدم

موفق باشید

ممنون متوجه منظورتون شدم کاملا

zakieh
سه شنبه 17 اسفند 1389, 11:48 صبح
Server Error in '/Reports' Application.
--------------------------------------------------------------------------------
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /Reports/ReportAccounting.aspx

من کارهایی که گفتین انجام دادم. ولی بازم همینطوریه.

http://10.10.1.40/Reports/ReportAccounting.aspx

این آدرسمونه.

اینم بینکی که من دادم:

Rersponse.Redirect("~/Reports/ReportAccounting.aspx")

آخه من چی کار کنم؟

zakieh
سه شنبه 17 اسفند 1389, 11:50 صبح
سلام
این کد آدرس بیس رو برمیگردونه
میتونی برای آدرس دهی ها از این استفاده کنی

public static string _BaseSiteUrl
{
get
{
HttpContext context = HttpContext.Current;
string baseUrl = context.Request.Url.Scheme + "://" + context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/') + '/';
return baseUrl;
}
}


چظوری اط این کد استقاده کنم؟

mohitlog
سه شنبه 17 اسفند 1389, 12:40 عصر
سلام
یک لینک به درون صفحه بکش و صفحه مورد نظرتو بهش لینک کن


ببین به چه صورتی navigationUrl رو ست میکنه

zakieh
سه شنبه 17 اسفند 1389, 13:58 عصر
سلام
یک لینک به درون صفحه بکش و صفحه مورد نظرتو بهش لینک کن


ببین به چه صورتی navigationUrl رو ست میکنه

با یه باتن امتحان کردم با خاصیت postback url بازم همون آدرس رو داد. صفحات از طریق ویژوال اجرا میشه ولی وقتی برنامه روی IIs نصبه روی سرور done میده و روی کلینت هم همون خطایی که گذاشتم.

masoudasgari
سه شنبه 17 اسفند 1389, 14:34 عصر
میتونی اینجوری استفاده کنی

Response.Redirect(_BaseSiteUrl+"Report/Default.aspx")

به عنوان مثال به اين آدرس میره
http://www.MyWebSite/Report/Default.aspx

zakieh
سه شنبه 17 اسفند 1389, 16:30 عصر
میتونی اینجوری استفاده کنی

Response.Redirect(_BaseSiteUrl+"Report/Default.aspx")


به عنوان مثال به اين آدرس میره



http://www.MyWebSite/Report/Default.aspx




سلام.

یعنی BasesiteUrl رو آی پی فولدر برنامه روی سرور بگذارم؟؟؟ یا خود عبارت BaseSiteUrl روت رو شناسایی میکنه؟