অ্যাকশনফিলারঅ্যাট্রিবিউট ব্যবহার করা সবচেয়ে ভাল উপায়। কীভাবে এটি নেট কোর এবং। নেট ফ্রেমওয়ার্কে ব্যবহার করবেন তা আমি আপনাকে দেখাব।
নেট কোর 2.1 এবং 3.1
public class ViewBagActionFilter : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext context)
{
if (context.Controller is PageModel)
{
var controller = context.Controller as PageModel;
controller.ViewData.Add("Avatar", $"~/avatar/empty.png");
controller.ViewBag.Avatar = $"~/avatar/empty.png";
}
if (context.Controller is Controller)
{
var controller = context.Controller as Controller;
controller.ViewData.Add("Avatar", $"~/avatar/empty.png");
controller.ViewBag.Avatar = $"~/avatar/empty.png";
}
base.OnResultExecuting(context);
}
}
তারপরে আপনার এটি আপনার startup.cs এ নিবন্ধন করতে হবে।
। নেট কোর 3.1
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews(options => { options.Filters.Add(new Components.ViewBagActionFilter()); });
}
। নেট কোর 2.1
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options.Filters.Add(new Configs.ViewBagActionFilter());
});
}
তারপরে আপনি এটিকে সমস্ত দর্শন এবং পৃষ্ঠায় ব্যবহার করতে পারেন
@ViewData["Avatar"]
@ViewBag.Avatar
। নেট ফ্রেমওয়ার্ক (এএসপি। নেট এমভিসি। নেট ফ্রেমওয়ার্ক)
public class UserProfilePictureActionFilter : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.Controller.ViewBag.IsAuthenticated = MembershipService.IsAuthenticated;
filterContext.Controller.ViewBag.IsAdmin = MembershipService.IsAdmin;
var userProfile = MembershipService.GetCurrentUserProfile();
if (userProfile != null)
{
filterContext.Controller.ViewBag.Avatar = userProfile.Picture;
}
}
}
গ্লোবাল আপনার কাস্টম ক্লাস নিবন্ধন করুন। অ্যাস্যাক্স (অ্যাপ্লিকেশন_আরম্ভ)
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalFilters.Filters.Add(new UserProfilePictureActionFilter(), 0);
}
তারপরে আপনি এটি সমস্ত দর্শন ব্যবহার করতে পারেন
@ViewBag.IsAdmin
@ViewBag.IsAuthenticated
@ViewBag.Avatar
এছাড়াও একটি অন্য উপায় আছে
এইচটিএমএলহেল্পারে একটি এক্সটেনশন পদ্ধতি তৈরি করা
[Extension()]
public string MyTest(System.Web.Mvc.HtmlHelper htmlHelper)
{
return "This is a test";
}
তারপরে আপনি এটি সমস্ত দর্শন ব্যবহার করতে পারেন
@Html.MyTest()