কিভাবে asp.net এমভিসি 4 এবং এমভিসি 5 এ ডিফল্ট কন্ট্রোলার সেট করবেন


106

আমি কীভাবে আমার এএসপি.নেট এমভিসি 4 প্রকল্পটিকে হোম কন্ট্রোলার না করে সেটআপ করতে পারি ?

অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে কীভাবে একটি ডিফল্ট অঞ্চল সেটআপ করব ?


"? রুট পৃষ্ঠা হিসাবে / হোম এই" হিসাবে "/" থেকে পরিবর্তন করা হবে / হোম "গ্রাহকের ব্রাউজার এ দৃশ্যমান হতে হবে।
আন্দ্রে Mesquita

উত্তর:


165

সবচেয়ে ভাল উপায় হ'ল আপনার রুট পরিবর্তন করা। ডিফল্ট রুট (আপনার অ্যাপ_স্টার্টে সংজ্ঞায়িত) সেটগুলি/Home/Index

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "Home", action = "Index", 
        id = UrlParameter.Optional }
);

ডিফল্ট অবতরণ পৃষ্ঠা হিসাবে। আপনি এটি যে কোনও রুট হতে চান তা পরিবর্তন করতে পারেন।

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "Sales", action = "ProjectionReport", 
        id = UrlParameter.Optional }
);

13
এমভিসি 4 এ ডিফল্ট রুটটি অ্যাপ_সার্ট / রুটকনফিগ.সি
এরিক লাবশোস্কি

খুবই সত্য. আমি উভয় প্রকল্পে কাজ করছি এবং এই বিষয়গুলি উপেক্ষা করছি;)
ডেভ আল্পেরোভিচ

1
ডেভ ঠিকই আছে, তবে আমি যুক্ত করতে চাই যে এমভিসি 4 এ রাউটিং আর গ্লোবাল.এক্সএক্সে করা হয় না, বরং অ্যাপ_স্টার্টের অধীনে রুটকনফিগ
ভাল সামারিটান

2
যখন ডিফল্ট রুটে নিয়ামকটি অন্য কোনও জায়গায় বসে (যেমন মূলটি নয়) তখন কীভাবে সেই কাজটি করা যায়?
সুপারজোজ

আপনি ডিফল্ট রুটটিতে যেতে সক্ষম হবেন"AreaName/{controller}/{action}/{id}"
ডেভ আল্পেরোভিচ

30

মধ্যে কোড নিচে সেট RouteConfig.cs মধ্যে App_Start ফোল্ডারের

public static void RegisterRoutes(RouteCollection routes)
{
 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 routes.MapRoute(
 name: "Default",
 url: "{controller}/{action}/{id}",
 defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional });
}

যদি এখনও কাজ না করে থাকে তবে নীচের পদক্ষেপগুলি করুন

দ্বিতীয় উপায়: আপনি নীচের পদক্ষেপগুলির নীচে সহজ অনুসরণ করুন,

1) আপনার প্রকল্পে রাইট ক্লিক করুন

2) বৈশিষ্ট্য নির্বাচন করুন

3) ওয়েব বিকল্প নির্বাচন করুন এবং তারপরে নির্দিষ্ট পৃষ্ঠা নির্বাচন করুন (নিয়ন্ত্রক / দেখুন) এবং তারপরে আপনার লগইন পৃষ্ঠাটি সেট করুন

এখানে, অ্যাকাউন্টটি আমার নিয়ামক এবং লগইন হ'ল আমার ক্রিয়া পদ্ধতি (অ্যাকাউন্ট নিয়ামকটিতে সংরক্ষিত)

দয়া করে সংযুক্ত এখানে চিত্র বর্ণনা লিখুনস্ক্রিনশটটি দেখুন।


15
আপনি যখন আপনার ওয়েব প্রকল্পটি ডিবাগ করেন তখন আপনার "দ্বিতীয় উপায়" কী হয়। "ডিফল্ট নিয়ামক" এর সাথে এর কোনও সম্পর্ক নেই, অর্থাত্ আপনি যখন আপনার সাইটের ল্যান্ডিং পৃষ্ঠায় নেভিগেট করেন তখন কোন পৃষ্ঠাটি প্রদর্শিত হয়।
মার্টিন লিভারেজ

25

আমি এই প্রশ্নের উত্তর দেখতে পাইনি:

অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে কীভাবে একটি ডিফল্ট অঞ্চল সেটআপ করব ?

সুতরাং, আপনি এখানে একটি ডিফল্ট অঞ্চল সেট আপ করতে পারেন:

var route = routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    ).DataTokens = new RouteValueDictionary(new { area = "MyArea" });

1
দুর্দান্ত প্রশ্ন, আপনি কেন এটি একটি হিসাবে তৈরি করেন না?
স্টুয়ার্ডডটনেট

একটি 'অঞ্চল' কী? যদি আমি একটি ভিউ সংজ্ঞায়িত করি, তবে কি রেফারেন্সযুক্ত লেআউটটি লোড হয় এবং তারপরে আমার দেখার ডেটার সাথে একটি পৃথক এইচটিটিপি অনুরোধ রয়েছে? (অর্থাত্ পৃথক আজাক্স অপারেশন) বা আমার দৃষ্টিভঙ্গিটি লেআউটটি রেন্ডার এবং মোড়ানো?
গাস ক্রফোর্ড

2
@ গুসক্রাফোর্ড একটি 'অঞ্চল' কী? এমএসডিএন.মাইক্রোসফট.ইন- ইউএস / লিবারি / আই671793(VS.100 ) .aspx থেকে : বড় প্রকল্পগুলিকে সমন্বিত করতে, এএসপি.নেট এমভিসি আপনাকে ওয়েব অ্যাপ্লিকেশনগুলি ছোট ইউনিটগুলিতে ভাগ করতে দেয় যা অঞ্চল হিসাবে চিহ্নিত রয়েছে। অঞ্চলগুলি একটি বৃহত এমভিসি ওয়েব অ্যাপ্লিকেশনকে ছোট ফাংশনাল গ্রুপিংয়ে আলাদা করার একটি উপায় সরবরাহ করে। একটি অঞ্চল কার্যকরভাবে কোনও অ্যাপ্লিকেশনের অভ্যন্তরে একটি এমভিসি কাঠামো। একটি অ্যাপ্লিকেশনটিতে বেশ কয়েকটি এমভিসি স্ট্রাকচার (অঞ্চল) থাকতে পারে।
আমনা আলী

অন্য প্রশ্নের হিসাবে, আমি মনে করি না যে এটি এই উত্তরটির সাথে সম্পর্কিত, এবং এটি মূল প্রশ্নের সাথেও প্রাসঙ্গিক বলে মনে হচ্ছে না। হতে পারে, আপনার এটি অন্য কোথাও পোস্ট করা উচিত।
আমনা আলী

আমি একটি নতুন থ্রেডে পৃথকভাবে জিজ্ঞাসা করব দৃষ্টিভঙ্গির জন্য ধন্যবাদ।
গাস ক্রফোর্ড

2

যদি আপনার কাছে কেবলমাত্র একজন নিয়ামক থাকে এবং আপনি মূলের প্রতিটি ক্রিয়া অ্যাক্সেস করতে চান তবে আপনি নিয়ামকের নামটি এড়িয়ে যেতে পারেন

routes.MapRoute(
        "Default", 
        "{action}/{id}", 
        new { controller = "Home", action = "Index", 
        id = UrlParameter.Optional }
);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.