দেখুন বর্তমান নিয়ামক


127

আমার একটি আছে View - _Editযা বাস করে News M/V/C

আমি এই V/Mমাধ্যমে আবার ব্যবহার করি CategoryController:

return PartialView("/Views/News/_Edit.cshtml", model);

কীভাবে View - _Editআমি নিয়ন্ত্রণকারীর নামটি সতর্ক করতে পারি?

যখন আমি:

alert('@ViewContext. RouteData.Values["controller"].ToString()');

মূল্য হল: News যাইহোক, URL হল:/Category/foobar

'Category'সতর্কতার জন্য মানটি পাওয়ার কোনও উপায় আছে কি ? ধন্যবাদ


তোমার একটা নেই NewsController?
শিকারি

দয়া করে আপনার ক্রিয়াটি পোস্ট করুন methodযা লোড হচ্ছে partialviewএবং controllerযা methodবিদ্যমান রয়েছে
শিকারি

উত্তর:


193

আমি এটি আমার আংশিক দৃষ্টিতে রেখেছি:

@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()

একই ধরণের পরিস্থিতিতে আপনি বর্ণনা করেছেন এবং এটি আংশিক দৃশ্যের আসল অবস্থানের পরিবর্তে ইউআরএলে বর্ণিত নিয়ামক দেখায় (আপনার জন্য বিভাগ, আমার জন্য পণ্য)।

পরিবর্তে এই সতর্কতাটি ব্যবহার করুন:

alert('@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()');

25
প্যালপির নীচের উত্তরটি একটি (স্মরণে রাখা সহজ) শর্টকাট:@ViewContext.RouteData.Values["controller"]
লাউজিন

6
শুধু একটি fyi, আপনি পেতে হবে না HttpContext.CurrentRequestসরাসরি পাওয়া যায়।
সার্জ সাগান

নেমস্পেস সহ পুরো নিয়ামক শ্রেণীর নাম পাওয়া কি সম্ভব? এছাড়াও দেখার নামটি প্রদর্শন করতে সক্ষম হওয়াই এটি দুর্দান্ত।
Johncl

3
বিটিডব্লিউ, ["action"]অ্যাকশন পদ্ধতির নাম চাইলে কাজ করে।
Zapnologica

117

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

@ViewContext.RouteData.Values["controller"]

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

সেরা উত্তর হিসাবে গ্রহণ করা উচিত। এটি এখনও এএসপি.নেট কোর 2.2
টম

21

সমস্ত কন্ট্রোলারদের জন্য বেস ক্লাস তৈরি করুন এবং নামটির বৈশিষ্ট্য এখানে রাখুন:

public abstract class MyBaseController : Controller
{
    public abstract string Name { get; }
}

দেখুন

@{
    var controller = ViewContext.Controller as MyBaseController;
    if (controller != null)
    {
       @controller.Name
    }
}

নিয়ামক উদাহরণ

 public class SampleController: MyBaseController 
    { 
      public override string Name { get { return "Sample"; } 
    }

Nameসম্পত্তি সেট হয়ে যায় কিভাবে দয়া করে ব্যাখ্যা করুন ?
এরিক


5

শুধু ব্যবহার করুন:

ViewContext.Controller.GetType().Name

এটি আপনাকে পুরো নিয়ন্ত্রকের নাম দেবে


2

আপনি এখনও আপনার প্রসঙ্গে রয়েছেন CategoryControllerযদিও আপনি PartialViewনিজের Views/Newsফোল্ডার থেকে একটি লোড করছেন ।


0

নিয়ামকের নাম পেতে আপনি নীচের কোডগুলির কোনওটি ব্যবহার করতে পারেন

@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString();

আপনি যদি এমভিসি 3 ব্যবহার করেন তবে আপনি ব্যবহার করতে পারেন

@ViewContext.Controller.ValueProvider.GetValue("controller").RawValue
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.