উত্তর:
তুমি ব্যবহার করতে পার System.Uri
Uri url = new Uri("http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = String.Format("{0}{1}{2}{3}", url.Scheme,
Uri.SchemeDelimiter, url.Authority, url.AbsolutePath);
অথবা আপনি ব্যবহার করতে পারেন substring
string url = "http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye";
string path = url.Substring(0, url.IndexOf("?"));
সম্পাদনা: মন্তব্যগুলিতে বিলিফ্রেশের পরামর্শ প্রতিফলনের জন্য প্রথম সমাধানটি সংশোধন করা।
substringসেখানে যদি কোনো ক্যোয়ারী স্ট্রিং পদ্ধতি ত্রুটি দেব। string path = url.Substring(0, url.IndexOf("?") > 0? url.IndexOf("?") : url.Length);পরিবর্তে ব্যবহার করুন।
এখানে একটি সহজ সমাধান:
var uri = new Uri("http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = uri.GetLeftPart(UriPartial.Path);
এখান থেকে নেওয়া হয়েছে: ক্যোয়ারী স্ট্রিং কেটে ফেলা হচ্ছে এবং ক্লিন ইউআরএল সি # এএসপি.এন.
return Request.Url.GetLeftPart(UriPartial.Path);
uri.GetComponent(উরির অংশ পাওয়ার জন্য আর একটি দুর্দান্ত পদ্ধতি। এই দুজনের সম্পর্কে আমি এখন অবধি জানতাম না!
Request.RawUrl.Split(new[] {'?'})[0];
RawUrlURL টি পেতে হবে আগে URL টি নতুন করে লেখা হয়, তাই সম্ভবত ব্যবহার AbsoluteUri? Request.Url.AbsoluteUri.Split('?')[0]
ভাল উত্তর এখানে উত্তর উত্স পাওয়া যায়
Request.Url.GetLeftPart(UriPartial.Path)
আমার পথ:
new UriBuilder(url) { Query = string.Empty }.ToString()
অথবা
new UriBuilder(url) { Query = string.Empty }.Uri
Uri.GetLeftPart। নেট কোর (১.১) এর সর্বশেষ সংস্করণে সেই পদ্ধতিটি থাকা উচিত (ক্যান্ট কনফার্ম হওয়া উচিত কারণ আমি এখনকার নেট কোর ১.১ এ নেই)
আপনি Request.Url.AbsolutePathপৃষ্ঠার নাম পেতে এবং Request.Url.Authorityহোস্টের নাম এবং পোর্ট ব্যবহার করতে পারেন । আমি বিশ্বাস করি না যে আপনি যা চান ঠিক তা দেওয়ার জন্য কোনও সম্পত্তি অন্তর্নির্মিত আছে তবে আপনি সেগুলি নিজেই একত্রিত করতে পারেন।
বিভক্ত () পার্থক্য
আমি কেবল রেফারেন্সের জন্য এই প্রকরণটি যুক্ত করতে চাই। ইউআরএলগুলি প্রায়শই স্ট্রিং হয় এবং তাই এর Split()চেয়ে পদ্ধতিটি ব্যবহার করা সহজ Uri.GetLeftPart()। এবং Split()আপেক্ষিক, খালি এবং নাল মানগুলির সাথে কাজ করার জন্যও তৈরি করা যেতে পারে যেখানে উরি একটি ব্যতিক্রম ছুঁড়ে ফেলে। অতিরিক্তভাবে, ইউআরএলগুলিতে একটি হ্যাশও থাকতে পারে /report.pdf#page=10(যা একটি নির্দিষ্ট পৃষ্ঠায় পিডিএফ খুলবে)।
নিম্নলিখিত পদ্ধতিটি এই জাতীয় সমস্ত ধরণের সাথে কাজ করে:
var path = (url ?? "").Split('?', '#')[0];
উদাহরণ আউটপুট:
http: //domain/page.html#page=2 ---> http: //domain/page.html
page.html ---> page.html
@ কোলম্যানের উত্তর ব্যবহার করে এখানে একটি বর্ধিতকরণ পদ্ধতি রয়েছে। গেটলফ্ট পার্টের চেয়ে পাথ () ব্যবহার করা মনে রাখা সহজভাবে সহজ। কমপক্ষে তারা সি # তে এক্সটেনশান বৈশিষ্ট্য যুক্ত না করা পর্যন্ত আপনি গেটপথের পাথের নাম পরিবর্তন করতে পারেন।
ব্যবহার:
Uri uri = new Uri("http://www.somewhere.com?param1=foo¶m2=bar");
string path = uri.Path();
শ্রেণী:
using System;
namespace YourProject.Extensions
{
public static class UriExtensions
{
public static string Path(this Uri uri)
{
if (uri == null)
{
throw new ArgumentNullException("uri");
}
return uri.GetLeftPart(UriPartial.Path);
}
}
}
Request.RawUrl.Split('?')[0]
শুধু ইউআরএল নামের জন্য !!
আমি একটি সাধারণ এক্সটেনশান তৈরি করেছি, যেমন অন্যান্য উত্তরগুলির মধ্যে কয়েকটি QueryStringদিয়ে শুরু করার মতো কিছু না থাকলে নাল ব্যতিক্রম ছুঁড়ে ফেলেছিল :
public static string TrimQueryString(this string source)
{
if (string.IsNullOrEmpty(source))
return source;
var hasQueryString = source.IndexOf('?') != -1;
if (!hasQueryString)
return source;
var result = source.Substring(0, source.IndexOf('?'));
return result;
}
ব্যবহার:
var url = Request.Url?.AbsoluteUri.TrimQueryString()
System.Uri.GetComponents, সুনির্দিষ্ট উপাদান আপনি চান।
Uri uri = new Uri("http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
uri.GetComponents(UriComponents.SchemeAndServer | UriComponents.Path, UriFormat.UriEscaped);
আউটপুট:
http://www.example.com/mypage.aspx
var canonicallink = Request.Url.Scheme + "://" + Request.Url.Authority + Request.Url.AbsolutePath.ToString();
এটা চেষ্টা কর:
urlString=Request.RawUrl.ToString.Substring(0, Request.RawUrl.ToString.IndexOf("?"))
এটি থেকে: http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2= গুডবাই আপনি এটি পাবেন: mypage.aspx
this.Request.RawUrl.Substring(0, this.Request.RawUrl.IndexOf('?'))