আমি ব্যবহারকারীর নিয়ন্ত্রণ থেকে যে পৃষ্ঠাটিতে আছি তার পুরো URL টি পেতে আমার সক্ষম হওয়া দরকার। এটি কি একত্রে অনুরোধ ভেরিয়েবলগুলির একত্রে একত্রিত করার বিষয়? যদি তাই হয়? বা আরও সহজ উপায় আছে?
আমি ব্যবহারকারীর নিয়ন্ত্রণ থেকে যে পৃষ্ঠাটিতে আছি তার পুরো URL টি পেতে আমার সক্ষম হওয়া দরকার। এটি কি একত্রে অনুরোধ ভেরিয়েবলগুলির একত্রে একত্রিত করার বিষয়? যদি তাই হয়? বা আরও সহজ উপায় আছে?
উত্তর:
আমি সাধারণত Request.Url.ToString()সম্পূর্ণ ইউআরএল (ক্যোরিস্ট্রিং সহ) পেতে ব্যবহার করি , কোন কনটেন্টেশন প্রয়োজন নেই।
Request.Url.ToString()কোয়েরি স্ট্রিং অন্তর্ভুক্ত নয়।
এই ধরণের তথ্যের জন্য আমি সাধারণত একটি তালিকা এখানে উল্লেখ করি:
Request.ApplicationPath : /virtual_dir
Request.CurrentExecutionFilePath : /virtual_dir/webapp/page.aspx
Request.FilePath : /virtual_dir/webapp/page.aspx
Request.Path : /virtual_dir/webapp/page.aspx
Request.PhysicalApplicationPath : d:\Inetpub\wwwroot\virtual_dir\
Request.QueryString : /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.AbsolutePath : /virtual_dir/webapp/page.aspx
Request.Url.AbsoluteUri : http://localhost:2000/virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Host : localhost
Request.Url.Authority : localhost:80
Request.Url.LocalPath : /virtual_dir/webapp/page.aspx
Request.Url.PathAndQuery : /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Port : 80
Request.Url.Query : ?q=qvalue
Request.Url.Scheme : http
Request.Url.Segments : /
virtual_dir/
webapp/
page.aspx
আশা করি আপনি এই দরকারী পাবেন!
Request.QueryStringq=qvalueকেবল ফেরৎ
Request.Url.AbsoluteUri
এই সম্পত্তিটি আপনার প্রয়োজন মতো সমস্ত কিছু এক সংযুক্ত কল করে।
এর জন্য ASP.NET Coreআপনাকে এটিকে বানান করতে হবে:
@($"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}{Context.Request.QueryString}")
অথবা আপনি আপনার দৃষ্টিতে একটি ব্যবহারের বিবৃতি যুক্ত করতে পারেন:
@using Microsoft.AspNetCore.Http.Extensions
তারপর
@Context.Request.GetDisplayUrl()
এর _ViewImports.cshtmlজন্য আরও ভাল জায়গা হতে পারে@using
আপনার যদি HTTP থেকে ক্যোরিস্ট্রিংয়ের সবকিছু হিসাবে সম্পূর্ণ URL টির প্রয়োজন হয় তবে আপনাকে নিম্নলিখিত ভেরিয়েবলগুলি একত্রিত করতে হবে
Request.ServerVariables("HTTPS") // to check if it's HTTP or HTTPS
Request.ServerVariables("SERVER_NAME")
Request.ServerVariables("SCRIPT_NAME")
Request.ServerVariables("QUERY_STRING")
উন্নত ব্যবহার করতে Request.Url.OriginalStringচেয়ে Request.Url.ToString()(অনুযায়ী দুটিই MSDN )
OriginalString।
ধন্যবাদ ছেলেরা, আমি আমার নির্দিষ্ট প্রয়োজনের জন্য আপনার উত্তর @ ক্রিশ্চিয়ান এবং @ জনাথন উভয়ের মিশ্রণটি ব্যবহার করেছি।
"http://" + Request.ServerVariables["SERVER_NAME"] + Request.RawUrl.ToString()
নিরাপদ HTTP সম্পর্কে আমার মাথা ঘামানোর দরকার নেই, সার্ভারনেম ভেরিয়েবলের প্রয়োজন এবং RawUrl ডোমেন নাম থেকে পাথ পরিচালনা করে এবং উপস্থিত থাকলে ক্যোরিস্ট্রিং অন্তর্ভুক্ত করে।
নিম্নলিখিত চেষ্টা করুন -
var FullUrl = Request.Url.AbsolutePath.ToString();
var ID = FullUrl.Split('/').Last();