c# - ما هو Routeedata.Values ​​[""]؟



asp.net-mvc asp.net-mvc-4 (1)

أنا مندهش لرؤية أن هناك أي مادة التي يجيب على هذا السؤال مع أي تفاصيل. لدي بعض الأسئلة المتعلقة RouteData.Values[""] .

رأيت هذا الرمز:

public ActionResult Index()
{
    ViewBag.Message = string.Format("{0}---{1}--{2}",
        RouteData.Values["Controller"],
        RouteData.Values["action"],
        RouteData.Values["id"]);

    return View();
}

هنا هو أساسا قراءة القيم التي يحتمل أن يبدو مثل "ميتا البيانات" من وحدة تحكم. أم أنه شيء يمكن عرض أيضا تمرير إلى المراقب المالي؟


يستخدم RouteData.Values ​​للوصول إلى القيم / القيم كيريسترينغ إدراجها من قبل التعامل مع فئات التوجيه.
في حالتك، يحتوي المسار المحدد في فئة تهيئة المسار على معلمات إضافية على الوسيطات التي تم توفيرها.
المعلمات هي وحدة تحكم، والعمل، والمعرف.
قد تكون الحجج لهذه المعلمات في مكان ما في التعليمات البرمجية.

من المنطقي أن تبدأ بعض المستويات أعلى، حتى تعرف ما تبحث عنه.

  1. و Global.asax.cs

    protected void Application_Start(object sender, EventArgs e)
    {
        routingActions.RegisterCustomRoutes(RouteTable.Routes);
    }
  2. وهناك فئة أخرى تحدد الطريقة المذكورة أعلاه:

    public void RegisterCustomRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("searchdetails", "searchdetails/{orderID}/{PageIndex}/{PageSize}", "~/View/SearchDetails.aspx");
    }
  3. تقوم التعليمات البرمجية التالية بإنشاء ارتباط تشعبي. الفرق الرئيسي هو الطريقة التي يتم بناؤها هريف. في هذه الحالة، يتم تعريف "سيرتشديتايلز" في الفئة التي تحتوي على تكوين المسار الخاص بي.

    linkToDetails.HRef = GetRouteUrl("searchdetails",
                    new
                    {
                        orderID = someOrderID,
                        PageIndex = currentPageIndex,
                        PageSize = PageSize
                    });
  4. وأخيرا، يجب أن تستخدم الصفحة المستهدفة هذه المعلومات التي تم تمريرها في الخطوة 3. هذا هو المكان الذي نستخدم فيه RouteData.Values ​​[""]

    protected void Page_Load(object sender, EventArgs e)
    {
        var _orderid = Page.RouteData.Values["orderID"].ToString();
        var _PageIndex = Convert.ToInt32(Page.RouteData.Values["PageIndex"]);
        var _PageSize = Convert.ToInt32(Page.RouteData.Values["PageSize"]);
    }




routedata