ക്ലാസ് പേജ്. ASP.NET-ലെ ഡൈനാമിക് പേജുകൾ. മാസ്റ്റർ പേജുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നു

ASP.NET വെബ് പേജ്നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനുകൾക്ക് ഉപയോക്തൃ ഇന്റർഫേസ് നൽകുന്നു. ഈ വിഭാഗത്തിലെ വിഷയങ്ങൾ ASP.NET വെബ് പേജുകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്നും അവ എങ്ങനെ സൃഷ്ടിക്കാമെന്നും പ്രോഗ്രാം ചെയ്യാമെന്നും ഉള്ള വിവരങ്ങൾ നൽകുന്നു.

ഈ വിഭാഗത്തിൽ

    ASP.NET വെബ് പേജുകളുടെ അവലോകനം
    ASP.NET വെബ് പേജുകളുടെ ഘടന, ASP.NET വഴി പേജുകൾ എങ്ങനെ പ്രോസസ്സ് ചെയ്യുന്നു, XHTML സ്റ്റാൻഡേർഡുകൾക്ക് അനുസൃതമായി ASP.NET പേജുകൾ എങ്ങനെ മാർക്ക്അപ്പ് റെൻഡർ ചെയ്യുന്നു എന്നിവയെക്കുറിച്ചുള്ള പൊതുവായ വിവരങ്ങൾ നൽകുന്നു.

    ASP.NET വെബ് പേജ് സിന്റാക്സ് അവലോകനം
    ASP.NET പേജ് നിർമ്മിക്കുന്ന അടിസ്ഥാന മാർക്ക്അപ്പ് ഘടകങ്ങൾ വിവരിക്കുന്നു.

    ASP.NET വെബ് പേജുകൾ പ്രോഗ്രാമിംഗ്
    ASP.NET പേജുകളിൽ ഇവന്റ് ഹാൻഡ്‌ലറുകൾ എങ്ങനെ സൃഷ്ടിക്കാമെന്നും ക്ലയന്റ് സ്‌ക്രിപ്റ്റ് ഉപയോഗിച്ച് എങ്ങനെ പ്രവർത്തിക്കാമെന്നും വിവരങ്ങൾ നൽകുന്നു.

    ASP.NET വെബ് പേജ് കോഡ് മോഡൽ
    എല്ലാ ASP.NET പേജുകൾക്കും അന്തർലീനമായ പ്രോഗ്രാമിംഗ് മോഡലിന്റെ ഒരു അവലോകനം നൽകുന്നു, അതിൽ സിംഗിൾ-പേജ് മോഡൽ, കോഡ്-ബാക്ക് മോഡൽ, ഏത് മോഡൽ ഉപയോഗിക്കണമെന്ന് എങ്ങനെ തീരുമാനിക്കാം എന്നിവ ഉൾപ്പെടുന്നു.

    ASP.NET പേജ് ക്ലാസ് അവലോകനം
    ഒരു പേജിനെ പ്രതിനിധീകരിക്കുന്നതിനായി ജനറേറ്റ് ചെയ്‌ത് കംപൈൽ ചെയ്‌ത റൺ ടൈം ക്ലാസ് വിവരിക്കുകയും ആ പേജിന് അനുയോജ്യമായ ഒരു പ്രോഗ്രാമബിൾ ഒബ്‌ജക്റ്റ് നൽകുകയും ചെയ്യുന്നു.

    വാക്ക്ത്രൂ: വിഷ്വൽ വെബ് ഡെവലപ്പറിൽ ഒരു അടിസ്ഥാന വെബ് പേജ് സൃഷ്ടിക്കുന്നു
    ഒരു ലളിതമായ ASP.NET വെബ് പേജ് സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു ട്യൂട്ടോറിയൽ നൽകുന്നു.

    വാക്ക്ത്രൂ: വിഷ്വൽ വെബ് ഡെവലപ്പറിൽ കോഡ് വേർതിരിവുള്ള ഒരു അടിസ്ഥാന വെബ് പേജ് സൃഷ്ടിക്കുന്നു
    കോഡ്-ബാക്ക് പ്രോഗ്രാമിംഗ് മോഡൽ ഉപയോഗിച്ച് ലളിതമായ ASP.NET വെബ് പേജ് സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു ട്യൂട്ടോറിയൽ നൽകുന്നു.

    എങ്ങനെ: ഒരു വെബ്‌സൈറ്റിലേക്ക് ASP.NET വെബ് പേജുകൾ ചേർക്കുക
    ഒരു വെബ്‌സൈറ്റിലേക്ക് പുതിയതും നിലവിലുള്ളതുമായ ASP.NET വെബ് പേജുകൾ ചേർക്കുന്നതിനുള്ള ഒരു നടപടിക്രമം നൽകുന്നു വിഷ്വൽ സ്റ്റുഡിയോ.

ബന്ധപ്പെട്ട വിഭാഗങ്ങൾ

    ASP.NET വെബ്‌സൈറ്റുകൾ സൃഷ്ടിക്കുന്നു
    ഒരു ASP.NET വെബ് ആപ്ലിക്കേഷൻ എങ്ങനെ സൃഷ്ടിക്കാം, ഇഷ്ടാനുസൃതമാക്കാം, കൈകാര്യം ചെയ്യാം എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ നൽകുന്നു (ചിലപ്പോൾ ഒരു വെബ് സൈറ്റ് എന്ന് വിളിക്കപ്പെടുന്നു).

    ASP.NET വെബ് സെർവർ നിയന്ത്രണങ്ങളുടെ അവലോകനം
    ASP.NET വെബ് സെർവർ നിയന്ത്രണങ്ങൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു, അവ ASP.NET പേജുകളിലേക്ക് എങ്ങനെ ചേർക്കാം, അവ എങ്ങനെ പ്രോഗ്രാം ചെയ്യാം എന്നിവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ നൽകുന്നു.

ASP.NET-ലെ ഒരു അപൂർവ അഭിമുഖം ASP.NET വെബ് ഫോമുകളിലെ ഒരു പേജിന്റെ ജീവിത ചക്രത്തെക്കുറിച്ച് ഒരു ചോദ്യമില്ലാതെ പൂർത്തിയാകില്ല (ഇനിമുതൽ ചുരുക്കത്തിൽ ASP.NET എന്ന് വിളിക്കുന്നു). ഈ പ്രശ്നം മനസിലാക്കാൻ ശ്രമിക്കാം. ഞാൻ വിഷയം രണ്ടായി വിഭജിച്ചു. ഈ ലേഖനത്തിൽ നമ്മൾ ASP.NET-ലെ പേജ് ലൈഫ് സൈക്കിളിന്റെ ഘട്ടങ്ങൾ നോക്കും.

ASP.NET പേജിന്റെ പൊതുവായ പ്ലാൻ ലൈഫ് സൈക്കിൾ
  • IIS വെബ് സെർവർ മുഖേന ഒരു പേജ് അഭ്യർത്ഥന സ്വീകരിക്കുകയും പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്നു
  • ASP.NET റൺടൈമിലേക്ക് അഭ്യർത്ഥന കൈമാറുന്നു
  • റൺടൈം:

    * വിളിക്കുന്ന പേജിന്റെ ക്ലാസ് ലോഡ് ചെയ്യുന്നു * പേജ് ക്ലാസിന്റെ പ്രോപ്പർട്ടികൾ സജ്ജീകരിക്കുന്നു * ഘടകങ്ങളുടെ ഒരു വൃക്ഷം നിർമ്മിക്കുന്നു * അഭ്യർത്ഥന, പ്രതികരണ പ്രോപ്പർട്ടികൾ പൂരിപ്പിക്കുന്നു * ``IHttpHandler.ProcessRequest``` രീതിയെ വിളിക്കുന്നു

ഘട്ടങ്ങൾ

8 പ്രധാന ഘട്ടങ്ങളുണ്ട്. ഇനിപ്പറയുന്ന ഡയഗ്രം ഇത് വ്യക്തമായി പ്രകടമാക്കുന്നു

സ്റ്റേജ് വിവരണം
അഭ്യർത്ഥന പേജ് പേജിന്റെ ജീവിത ചക്രം ആരംഭിക്കുന്നതിന് മുമ്പ് പേജ് അഭ്യർത്ഥന സംഭവിക്കുന്നു. ഉപയോക്താവ് ഒരു അഭ്യർത്ഥന നടത്തുന്നു, ASP.NET റൺടൈം പേജ് കംപൈൽ ചെയ്യണമോ എന്ന് നിർണ്ണയിക്കുകയും ആരംഭിക്കുകയും ചെയ്യുന്നു ജീവിത ചക്രം, അല്ലെങ്കിൽ പേജ് എക്സിക്യൂട്ട് ചെയ്യാതെ തന്നെ നിങ്ങൾക്ക് ഒരു കാഷെ ചെയ്ത പേജ് ഒരു പ്രതികരണമായി തിരികെ നൽകാം.
പ്രോസസ്സിംഗ് ആരംഭിക്കുക ഈ ഘട്ടത്തിൽ, Response and Request പ്രോപ്പർട്ടികൾ, UICulture പ്രോപ്പർട്ടി എന്നിവ സജ്ജീകരിച്ചിരിക്കുന്നു. ഈ ഘട്ടം ഒരു പോസ്റ്റ്ബാക്കിന്റെ ഫലമായി പേജ് അഭ്യർത്ഥിച്ചതാണോ എന്ന് നിർണ്ണയിക്കുകയും അതിനനുസരിച്ച് IsPostBack പ്രോപ്പർട്ടി സജ്ജമാക്കുകയും ചെയ്യുന്നു.
പേജ് സമാരംഭം പേജ് ആരംഭിക്കുമ്പോഴേക്കും, എല്ലാ ചൈൽഡ് ഉപയോക്തൃ നിയന്ത്രണങ്ങളും ഇതിനകം തന്നെ സൃഷ്‌ടിക്കപ്പെട്ടിട്ടുണ്ട്, കൂടാതെ അവരുടെ UniqueID പ്രോപ്പർട്ടി സജ്ജീകരിച്ചിരിക്കുന്നു. ഈ സമയത്ത്, തീമുകൾ പേജിൽ പ്രയോഗിക്കുന്നു. ഒരു പോസ്റ്റ്ബാക്കിന്റെ ഫലമായാണ് പേജ് വിളിക്കുന്നതെങ്കിൽ, സെർവറിലേക്ക് അയച്ച ഡാറ്റ ഈ ഘട്ടത്തിൽ ഇതുവരെ നിയന്ത്രണങ്ങളുടെ പ്രോപ്പർട്ടികളിലേക്ക് ലോഡ് ചെയ്തിട്ടില്ല.
ഒരു പോസ്റ്റ്ബാക്കിന്റെ ഫലമായാണ് പേജ് വിളിക്കുന്നതെങ്കിൽ, ഈ ഘട്ടത്തിൽ നിയന്ത്രണങ്ങളുടെ പ്രോപ്പർട്ടികൾ സംസ്ഥാന വിവരങ്ങളുടെ (വ്യൂസ്റ്റേറ്റ്, കൺട്രോൾസ്റ്റേറ്റ്) അടിസ്ഥാനമാക്കി സജ്ജീകരിച്ചിരിക്കുന്നു.
മൂല്യനിർണ്ണയം പേജിലെ എല്ലാ വാലിഡേറ്റർമാർക്കും Validate() രീതി വിളിക്കുന്നു.
പോസ്റ്റ്ബാക്ക് പ്രോസസ്സിംഗ് ഒരു പോസ്റ്റ്ബാക്ക് സംഭവിച്ചിട്ടുണ്ടെങ്കിൽ ഇവന്റ് ഹാൻഡ്ലർമാരെ വിളിക്കുന്നു.
റെൻഡറിംഗ് സംസ്ഥാന വിവരങ്ങൾ സംരക്ഷിച്ചു, തുടർന്ന് പേജ് ക്ലാസ് ഉചിതമായ രീതികൾ വിളിക്കുന്നു കുട്ടികളുടെ ഘടകങ്ങൾഒരു HTML പ്രാതിനിധ്യം സൃഷ്ടിക്കുന്നതിനും അത് Response.OutputStream-ലേക്ക് കൈമാറുന്നതിനും നിയന്ത്രിക്കുന്നു.
അൺലോഡ് ചെയ്യുന്നു മുഴുവൻ പേജിനുമുള്ള HTML പ്രാതിനിധ്യം സൃഷ്ടിച്ചതിന് ശേഷം അൺലോഡിംഗ് സംഭവിക്കുന്നു.

ASP.NET 2.0-ൽ ആദ്യം പ്രത്യക്ഷപ്പെട്ട പേജുകളുടെ ദൃശ്യ പാരമ്പര്യമാണ് ഡിസൈൻ പാറ്റേണുകൾ. നിങ്ങൾക്ക് എത്ര ആപ്ലിക്കേഷൻ പേജുകൾക്കും അടിസ്ഥാനം സൃഷ്ടിക്കാൻ കഴിയും. ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കുന്നതും പരിപാലിക്കുന്നതും ടെംപ്ലേറ്റുകൾ എളുപ്പമാക്കുന്നു. വിഷ്വൽ സ്റ്റുഡിയോ 2005 പേജ് ടെംപ്ലേറ്റുകൾ സൃഷ്ടിക്കുന്നതിനും എഡിറ്റുചെയ്യുന്നതിനുമുള്ള പിന്തുണ ഉൾക്കൊള്ളുന്നു. ഈ പ്രഭാഷണം ഒരു ആപ്ലിക്കേഷനിൽ പേജ് ടെംപ്ലേറ്റുകളുടെ ഉപയോഗം പരിശോധിക്കുകയും അവയുടെ പ്രയോജനങ്ങൾ വിശദീകരിച്ചുകൊണ്ട് ആരംഭിക്കുകയും ചെയ്യുന്നു.

ശ്രദ്ധിക്കുക: ഈ പ്രദേശത്തെ പദാവലി സ്ഥിരപ്പെട്ടിട്ടില്ല. ചില പുസ്തകങ്ങൾ "മാസ്റ്റർ പേജുകൾ" എന്ന പ്രയോഗം ഉപയോഗിക്കുന്നു. "മാസ്റ്റർ പേജ്" എന്ന പദം Default.aspx എന്നതുമായി ആശയക്കുഴപ്പത്തിലാക്കിയാലും ഉപയോഗിക്കാം.

നിങ്ങൾക്ക് പേജ് ഡിസൈൻ ടെംപ്ലേറ്റുകൾ ആവശ്യമായി വരുന്നത് എന്തുകൊണ്ട്?

വേണ്ടി ലളിതമായ ഉപയോക്താവ്ഒരു സൈറ്റും മറ്റൊന്നും തമ്മിലുള്ള വ്യത്യാസം വൈവിധ്യമാർന്ന പേജ് ഡിസൈനാണ്. ഇന്ന് മിക്ക വെബ്‌സൈറ്റുകൾക്കും തിരിച്ചറിയാവുന്ന ഒരു ഡിസൈൻ ഉണ്ട്, സൈറ്റിന്റെ വ്യത്യസ്ത പേജുകളിൽ ഒരേ സ്ഥലങ്ങളിൽ ഒരേ ഘടകങ്ങൾ ഉപയോഗിച്ചാണ് ഇത് നേടുന്നത്. അതിനാൽ, പേജ് രൂപകൽപ്പന മൊത്തത്തിലുള്ള പ്രവർത്തനത്തേക്കാൾ വളരെ കുറവാണ്.

ഉദാഹരണത്തിന്, Komsomolskaya Pravda പത്ര വെബ്സൈറ്റിന്റെ പ്രധാന പേജ് നോക്കുക. എല്ലാ ദിവസവും വ്യത്യസ്ത ലേഖനങ്ങൾ അവിടെ പ്രത്യക്ഷപ്പെടുന്നു, പക്ഷേ അവയുടെ രൂപകൽപ്പന അതേപടി തുടരുന്നു. ഇതാണ് പത്രത്തിന്റെ ലോഗോ, മുകളിൽ, വലത്, ഇടത് നാവിഗേഷൻ ബാറുകൾ, വലതുവശത്തുള്ള ലേഖനങ്ങളുടെ റേറ്റിംഗ്, മെയിലിൽ തിരയുന്നതിനും സബ്‌സ്‌ക്രൈബുചെയ്യുന്നതിനും ലോഗിൻ ചെയ്യുന്നതിനുമുള്ള ഫോമുകൾ. പേജിന്റെ ചുവടെ നിയമപരമായ വിവരങ്ങൾ ഉണ്ട്.

ചില ഡെവലപ്പർമാർ എല്ലാ പേജുകളിലുടനീളം തനിപ്പകർപ്പ് ഘടകങ്ങൾ പകർത്തി ഒട്ടിക്കുന്നു. ഇത് കാര്യക്ഷമമല്ല; ഈ പൊതുവായ ഘടകങ്ങളിൽ നിങ്ങൾക്ക് ഒരു വിശദാംശം മാറ്റണമെങ്കിൽ, എല്ലാ പേജുകളിലും മാറ്റങ്ങൾ വരുത്തേണ്ടതുണ്ട്. HTML ഉൾപ്പെടുത്തുക കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ആവർത്തിച്ചുള്ള കോഡ് കഷണങ്ങൾ ഉൾപ്പെടുത്തിയ ഫയലുകളിലേക്ക് ചേർക്കാം. എന്നാൽ വികസന പരിതസ്ഥിതിയിൽ പേജിന്റെ അന്തിമ രൂപം കാണുന്നത് വളരെ ബുദ്ധിമുട്ടാണ്. ഇഷ്ടാനുസൃത നിയന്ത്രണങ്ങൾ സൃഷ്ടിക്കുന്നത് ASP.NET 1.1 സാധ്യമാക്കി. നിങ്ങൾക്ക് ആവശ്യമുള്ള ഉള്ളടക്കം ഉപയോഗിച്ച് അത്തരമൊരു ഘടകം സൃഷ്ടിക്കാനും എല്ലാ പേജുകളിലും സ്ഥാപിക്കാനും കഴിയും. ഈ ആശയത്തിന്റെ വികസനം പേജ് ടെംപ്ലേറ്റുകളുടെ സൃഷ്ടിയായിരുന്നു. ഇതൊരു ഉപയോക്തൃ നിയന്ത്രണം കൂടിയാണ്, ഇത് പേജിലല്ല, മറിച്ച് അതിന് പുറത്താണ്.

മാസ്റ്റർ പേജുകളുടെ അടിസ്ഥാനകാര്യങ്ങൾ

പേജ് ടെംപ്ലേറ്റുകൾ ഉപയോഗിച്ച്, നിങ്ങൾ ചില പൊതുവായ ഉള്ളടക്കങ്ങൾ നിർവചിക്കുകയും ഒരു .master വിപുലീകരണമുള്ള ഒരു പേജിൽ ഇടുകയും ചെയ്യുന്നു. സ്വാഭാവികമായും, ആപ്ലിക്കേഷനിൽ അത്തരം നിരവധി പേജുകൾ ഉണ്ടായിരിക്കാം. സാധാരണ പേജുകൾ പോലെ, aspx വിപുലീകരണമുള്ള ഏത് ചൈൽഡ് പേജുകൾക്കും ഈ ടെംപ്ലേറ്റ് ഉപയോഗിക്കാം.

ഈ പ്രഭാഷണം മുതൽ, പേഴ്സണൽ വെബ് സൈറ്റ് സ്റ്റാർട്ടർ കിറ്റ് ടെംപ്ലേറ്റ് ഉപയോഗിച്ച് വിഷ്വൽ സ്റ്റുഡിയോ 2005 സൃഷ്ടിക്കുന്ന പ്രോജക്റ്റ് ഞങ്ങൾ വിശകലനം ചെയ്യും. ഇത് പേജ് ടെംപ്ലേറ്റുകളും തീമുകളും വ്യക്തിഗതമാക്കലും നാവിഗേഷനും കാണിക്കുന്നു. നാവിഗേഷൻ നിയന്ത്രണങ്ങൾ Default.master ടെംപ്ലേറ്റ് പേജിൽ കേന്ദ്രീകരിച്ചിരിക്കുന്നു. എല്ലായിടത്തും നാവിഗേഷൻ ആവശ്യമുള്ളതിനാൽ ഇതൊരു സ്വാഭാവിക പരിഹാരമാണ്.

ടെംപ്ലേറ്റ് പേജിൽ പൊതുവായ തലക്കെട്ടുകളും അടിക്കുറിപ്പുകളും ഉൾപ്പെടുന്നു.

പ്രത്യേക ഘടകങ്ങൾ സ്ഥാപിക്കാൻ കഴിയുന്ന ഒരേയൊരു പേജ് ഇതാണ് ഉള്ളടക്ക മാനേജ്മെന്റ്പ്ലേസ് ഹോൾഡർ. ചൈൽഡ് പേജുകൾ ഉള്ള സ്ഥലങ്ങൾ അവർ നിർവ്വചിക്കുന്നു ഈ യജമാനന്റെസ്വന്തം ഉള്ളടക്കം പോസ്റ്റ് ചെയ്യാം. ASP.NET-ന് ഒരു ചൈൽഡ് പേജ് റെൻഡർ ചെയ്യാനുള്ള അഭ്യർത്ഥന ലഭിക്കുമ്പോൾ, അത് അതിന്റെ കോഡ് കോഡുമായി ലയിപ്പിക്കുന്നു ഹോം പേജ്, ഫലമായി, "സീമുകൾ" ദൃശ്യമാകാത്ത HTML ജനറേറ്റുചെയ്യുന്നു.

ഡിസൈൻ പരിതസ്ഥിതിയിൽ ഒരു ചൈൽഡ് പേജ് എഡിറ്റുചെയ്യുമ്പോൾ, ടെംപ്ലേറ്റിൽ നിന്നുള്ള ഘടകങ്ങൾക്കൊപ്പം ഡിസൈൻ ടാബിൽ മുഴുവൻ പേജും ദൃശ്യമാകും, പക്ഷേ അവ ചാരനിറമാണ്. അവ എഡിറ്റ് ചെയ്യാൻ കഴിയില്ല. ഉള്ളടക്ക ഘടകങ്ങളിൽ ഉള്ളത് നിങ്ങൾക്ക് എഡിറ്റ് ചെയ്യാം.

പുതിയ ഇനം ചേർക്കുക ഡയലോഗിൽ, മാസ്റ്റർ പേജ് പേജ് തരം തിരഞ്ഞെടുക്കുക. സാധാരണ പേജുകൾ പോലെ, അവ കോഡ്-ബാക്ക് അല്ലെങ്കിൽ പേജിനുള്ളിൽ ഉൾച്ചേർത്ത കോഡ് ഉപയോഗിച്ച് സൃഷ്ടിക്കാൻ കഴിയും. ഇത് ചൈൽഡ്+ പേജുകളുടെ കോഡ് പങ്കിടൽ മോഡലിനെ ഒരു തരത്തിലും ബാധിക്കില്ല. കൂടാതെ, പ്രധാന പേജുകളും ചൈൽഡ് പേജുകളും വിവിധ ഭാഷകളിൽ വികസിപ്പിക്കാൻ കഴിയും.

ലോജിക്കൽ ഭാഗങ്ങളായി പേജിന്റെ വ്യക്തമായ വിഭജനം ലഭിക്കുന്നതിന്, പട്ടികകൾ ഉപയോഗിക്കുന്നു. നമുക്ക് 3 വരികളുള്ള ഒരു മേശ നിർമ്മിക്കാം മുകളിലെ വരിഎല്ലാ പേജുകളുടെയും തലക്കെട്ട് ഉണ്ട്, രണ്ടാമത്തേതിൽ അനിയന്ത്രിതമായ ഉള്ളടക്കം അടങ്ങിയിരിക്കുന്നു, അതിൽ രണ്ട് സെല്ലുകൾ അടങ്ങിയിരിക്കുന്നു, അവയിൽ ഓരോന്നിനും ഒരു ContentPlaceHolder ഉണ്ട്. താഴത്തെ നിരയിലാണ് നിയമപരമായ വിവരങ്ങൾ. ലേഔട്ട്-ഇൻസേർട്ട് ടേബിൾ മെനുവിൽ നിന്നാണ് പട്ടിക വളരെ ലളിതമായി സൃഷ്ടിച്ചിരിക്കുന്നത്. 2 ബൈ 3 പട്ടിക സൃഷ്ടിക്കുക. അതിനുശേഷം, മുകളിലെ സെല്ലുകൾ ലയിപ്പിക്കുക അടിവരകൾ, മധ്യഭാഗത്തേക്ക് ContentPlaceHolder ചേർക്കുക. തലക്കെട്ടും അടിക്കുറിപ്പും സൃഷ്ടിക്കുക. ഇതുപോലുള്ള ഒരു പേജിൽ നിങ്ങൾ അവസാനിപ്പിക്കണം:

ഹലോ!
ASP.NET 2.0 പ്രോഗ്രാമിംഗ് സ്കൂൾ
പകർപ്പവകാശം © 2006 - ASP.NET 2.0 സ്കൂൾ

ഈ പേജും ഒരു സാധാരണ പേജും തമ്മിലുള്ള ആദ്യത്തെ വ്യത്യാസം, ഇത് ഒരു മാസ്റ്റർ നിർദ്ദേശത്തിൽ ആരംഭിക്കുന്നു എന്നതാണ്, ഒരു പേജല്ല. MasterPage.master.cs ഫയലിൽ മാസ്റ്റർ പേജ് ക്ലാസ് നിർവചിച്ചിരിക്കുന്നു.

പൊതു ഭാഗിക ക്ലാസ് മാസ്റ്റർപേജ്: System.Web.UI.MasterPage (സംരക്ഷിത ശൂന്യമായ പേജ്_ലോഡ്(ഒബ്ജക്റ്റ് അയച്ചയാൾ, EventArgs e) ( ) )

ടെംപ്ലേറ്റ് ക്ലാസ് System.Web.UI.MasterPage-ന്റെ പിൻഗാമിയാണ്, അത് System.Web.UI.UserControl-ൽ നിന്ന് അവകാശമാക്കുന്നു.

ഇതിൽ ഏതെങ്കിലും നിയന്ത്രണങ്ങളും HTML കോഡും അടങ്ങിയിരിക്കാം. പേജ് ഇവന്റുകളും അതിൽ പ്രോസസ്സ് ചെയ്യാവുന്നതാണ്. 2 ContentPlaceHolder ഘടകങ്ങൾ പിൻഗാമി പേജിന്റെ ഉള്ളടക്കം ചേർത്ത സ്ഥലങ്ങളെ സൂചിപ്പിക്കുന്നു.

ഇപ്പോൾ നിങ്ങൾ ഒരു ഉള്ളടക്ക പേജ് സൃഷ്ടിക്കേണ്ടതുണ്ട്. ഇത് പതിവുപോലെ സൃഷ്‌ടിച്ചതാണ്, സെലക്ട് മാസ്റ്റർ പേജ് എന്ന് ലേബൽ ചെയ്‌തിരിക്കുന്ന ചെക്ക്‌ബോക്‌സ് മാത്രമാണ് ചെക്ക് ചെയ്‌തിരിക്കുന്നത്. നിങ്ങൾ ഒരു പേജ് ടെംപ്ലേറ്റ് തിരഞ്ഞെടുക്കേണ്ട ഒരു ഡയലോഗ് ദൃശ്യമാകുന്നു.

എന്നാൽ ഈ സാഹചര്യത്തിൽ പോലും, പേജ് നിർദ്ദേശത്തിലെ പ്രധാന പേജിന്റെ അസൈൻമെന്റ് ആപ്ലിക്കേഷൻ തലത്തിലുള്ള അസൈൻമെന്റിനെക്കാൾ മുൻഗണന നൽകുന്നു. മാസ്റ്റർപേജ് ഫയൽ വ്യക്തമാക്കിയിട്ടില്ലാത്തതും എന്നാൽ നിർവചിച്ചിട്ടുള്ള ഉള്ളടക്ക നിയന്ത്രണങ്ങളുള്ളതുമായ പേജുകളിൽ web.config ക്രമീകരണം പ്രാബല്യത്തിൽ വരും. ഈ ക്രമീകരണം സാധാരണ aspx പേജുകളെ ബാധിക്കില്ല.

ടെംപ്ലേറ്റ് എല്ലാ പേജുകളിലേക്കും അസൈൻ ചെയ്യാൻ കഴിയും, പക്ഷേ തിരഞ്ഞെടുത്ത്, ഉദാഹരണത്തിന്, അതിൽ സ്ഥിതിചെയ്യുന്നു നിർദ്ദിഷ്ട ഫോൾഡർഅപേക്ഷകൾ.

പ്രധാന കോൺഫിഗറേഷൻ നോഡിലേക്ക് ലൊക്കേഷൻ ഘടകം ചേർത്തു. Lectures ഫോൾഡറിലെ എല്ലാ പേജുകളും Lectures.master ടെംപ്ലേറ്റ് പേജ് ഉപയോഗിക്കുന്നുണ്ടെന്ന് ഇത് വ്യക്തമാക്കുന്നു.

ഒരു ടെംപ്ലേറ്റിന്റെ പിൻഗാമി പേജിൽ ഉള്ളടക്ക തരത്തിന്റെ ഘടകങ്ങൾ മാത്രമേ ഉൾക്കൊള്ളാൻ കഴിയൂ, അവ ഓരോന്നും ടെംപ്ലേറ്റിന്റെ ഒരു ContentPlaceHolder ഘടകവുമായി പൊരുത്തപ്പെടുന്നു. ഈ ഘടകങ്ങൾക്ക് പുറത്ത് നിങ്ങൾക്ക് ഉള്ളടക്കം ചേർക്കാൻ കഴിയില്ല, അല്ലാത്തപക്ഷം ASP.NET-ന് മാസ്റ്റർ പേജ് ഉള്ളടക്ക പേജുമായി സംയോജിപ്പിക്കാൻ കഴിയില്ല. ContentPlaceHolder ID, അനുബന്ധ ഉള്ളടക്ക ഘടകത്തിന്റെ ContentPlaceHolderID ആട്രിബ്യൂട്ടുമായി പൊരുത്തപ്പെടണം.

പ്രോഗ്രാം 2 ഉള്ളടക്ക നിയന്ത്രണങ്ങളുള്ള ഒരു ചൈൽഡ് പേജ് സൃഷ്ടിച്ചു. നിങ്ങൾ ഡിസൈൻ ടാബിലേക്ക് മാറുകയാണെങ്കിൽ, ഈ രണ്ട് ഉള്ളടക്ക ഘടകങ്ങളും ടെംപ്ലേറ്റിലെ രണ്ട് അടുത്തുള്ള പട്ടിക സെല്ലുകളിലായതിനാൽ അവ പരസ്പരം ശൂന്യമായ ദീർഘചതുരങ്ങളായി കാണിക്കും. MasterPageFile ആട്രിബ്യൂട്ടിന് പുറമേ, ശീർഷക ആട്രിബ്യൂട്ടിന്റെ സാന്നിധ്യത്താൽ പേജ് നിർദ്ദേശം സാധാരണയിൽ നിന്ന് വ്യത്യസ്തമാണ്. , , ടാഗുകൾ ടെംപ്ലേറ്റ് ഫയലിൽ നിന്ന് പാരമ്പര്യമായി ലഭിച്ചതിനാൽ, ബ്രൗസർ ഹെഡർ അസാധുവാക്കാനുള്ള ഒരേയൊരു മാർഗ്ഗമാണിത്. ആട്രിബ്യൂട്ട് മൂല്യം മാറ്റിസ്ഥാപിക്കുക

ബ്രൗസറിലെ തത്ഫലമായുണ്ടാകുന്ന പേജ് നിങ്ങൾ നോക്കുകയാണെങ്കിൽ, ബ്രൗസർ ഹെഡർ മാറ്റത്തെ പ്രതിഫലിപ്പിച്ചതായി നിങ്ങൾ കാണും. പേജിന്റെ HTML കോഡ് അടങ്ങിയിരിക്കുന്നു

ടെംപ്ലേറ്റ് പേജിൽ വ്യക്തമാക്കിയ ഉള്ളടക്കം മാത്രമേ പേജ് പ്രദർശിപ്പിക്കൂ.

ടെംപ്ലേറ്റ് എപ്പോൾ വേണമെങ്കിലും എഡിറ്റ് ചെയ്യാവുന്നതാണ്, മാറ്റങ്ങൾ എല്ലാ ഡെറിവേറ്റഡ് പേജുകളിലും പ്രതിഫലിക്കും. ഉദാഹരണത്തിന്, ടൈറ്റിൽ ടെക്സ്റ്റിന് മുമ്പ് ഒരു ചിത്രം ചേർക്കാം.

(ഇത് .NET ഇൻസ്റ്റലേഷനിൽ കാണാം "Microsoft.NET\Framework\v2.0.xxx\ASP.NETWebAdminFiles\Images)

ബ്രൗസറിലെ ചൈൽഡ് പേജ് ഇപ്പോൾ ഇതുപോലെ കാണപ്പെടുന്നു:

ബ്രൗസർ ശീർഷകം പ്രോഗ്രമാറ്റിക്കായി മാറ്റാൻ മറ്റൊരു വഴിയുണ്ട്. ഒരു ടെംപ്ലേറ്റുള്ള ഒരു പേജിന് ഒരു മാസ്റ്റർ പ്രോപ്പർട്ടി ഉണ്ട്. തീർച്ചയായും, എല്ലാ പേജുകളിലും അത് ഉണ്ട്, പക്ഷേ സാധാരണ പേജുകൾഇത് നല്ലിന് തുല്യമാണ്. അതിലൂടെ നിങ്ങൾക്ക് പ്രധാന പേജിന്റെ എല്ലാ പ്രോപ്പർട്ടികളും ആക്സസ് ചെയ്യാൻ കഴിയും. ഈ പ്രോപ്പർട്ടി വായിക്കാൻ മാത്രമുള്ളതാണ്.

സ്ഥിരസ്ഥിതിയായി പ്രദർശിപ്പിക്കുന്ന ഉള്ളടക്കം പ്രധാന പേജിന് നിർവചിക്കാനാകും. ഇത് ContentPlaceHolder ഘടകങ്ങളിൽ സ്ഥാപിക്കുകയും എല്ലാവർക്കും പാരമ്പര്യമായി ലഭിക്കുകയും ചെയ്യുന്നു കുട്ടികളുടെ പേജുകൾ. ചൈൽഡ് പേജ് സ്ഥിരസ്ഥിതി ഉള്ളടക്കത്തെ അസാധുവാക്കുന്നില്ലെങ്കിൽ, അത് പ്രദർശിപ്പിക്കുമ്പോൾ അത് ഉപയോഗിക്കും. നമുക്ക് ഒരു SiteMapPath നിയന്ത്രണം സൃഷ്ടിക്കാം, അത് ContentPlaceHolder1-ൽ സ്ഥാപിക്കും.

MainSchool.aspx പേജിൽ ഇത് ദൃശ്യമാകില്ല, കാരണം രണ്ട് ഉള്ളടക്ക ഘടകങ്ങളും അവിടെ നിർവചിച്ചിരിക്കുന്നു. എന്നിരുന്നാലും, ഇനിപ്പറയുന്ന പേജ് ഉള്ളടക്ക ഘടകങ്ങളിൽ ഒന്ന് മാത്രം നിർവ്വചിക്കുന്നുവെങ്കിൽ:

ഏത് പ്രോഗ്രാമിംഗ് ഭാഷയാണ് നിങ്ങൾ ഇഷ്ടപ്പെടുന്നത്?
asp:RadioButtonList ID="rblVoting" runat="server" DataSourceID="SqlDataSource1" DataTextField="variant" DataValueField="id">


നിങ്ങൾ അത് ബ്രൗസറിൽ നോക്കുകയാണെങ്കിൽ, അത് ഇടതുവശത്ത് കാണാം. അപ്പം നുറുക്കുകൾ» പ്രദർശിപ്പിച്ചിരിക്കുന്നു.

മാസ്റ്റർ പേജിന്റെ സോഫ്റ്റ്‌വെയർ ഉദ്ദേശ്യം

ഒരു ഉള്ളടക്ക പേജിൽ, നിങ്ങൾക്ക് അതിന്റെ പ്രധാന പേജ് പ്രോഗ്രമാറ്റിക്കായി വീണ്ടും നൽകാം. ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾ Page.MasterPageFile പ്രോപ്പർട്ടിയിലേക്ക് ആവശ്യമുള്ള മൂല്യം നൽകേണ്ടതുണ്ട്. @പേജ് നിർദ്ദേശത്തിൽ ഏത് ടെംപ്ലേറ്റ് നൽകിയാലും ടെംപ്ലേറ്റ് മാറും. എന്നാൽ നിങ്ങൾ ഇത് Page_Load അല്ലെങ്കിൽ Page_Init ഫംഗ്‌ഷനുകളിൽ ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഒരു റൺടൈം പിശക് ലഭിക്കും.

Page_PreInit ഇവന്റിന്റെ സമയത്ത് മാത്രമേ ഈ പ്രോപ്പർട്ടി മാറ്റാൻ കഴിയൂ. Page_PreInit ഇവന്റ് എന്നത് ആക്‌സസ് ചെയ്യാൻ കഴിയുന്ന ഒരു പേജിന്റെ ജീവിത ചക്രത്തിന്റെ ആദ്യ ഘട്ടമാണ്. Init ഇവന്റിനിടെ, പ്രധാന പേജുകളും ചൈൽഡ് പേജുകളും ഇതിനകം ഒന്നായി ലയിപ്പിച്ചതിനാൽ ടെംപ്ലേറ്റ് മാറ്റാൻ വളരെ വൈകി. ഇക്കാരണത്താൽ, പേജ്_പ്രീഇനിറ്റ് ഇവന്റിന് മാത്രമേ പ്രധാന പേജിൽ ഉള്ളടക്ക പേജിൽ നിന്ന് വേറിട്ട് പ്രവർത്തിക്കാൻ കഴിയൂ.

ടെംപ്ലേറ്റ് പേജുകൾക്ക് രീതികളും ഗുണങ്ങളും ഉണ്ടാകാം. അവ ആക്‌സസ് ചെയ്യാൻ, നിങ്ങൾ @MasterType നിർദ്ദേശം ഉപയോഗിക്കേണ്ടതുണ്ട്. ഈ സാഹചര്യത്തിൽ, ഡിസൈൻ ടെംപ്ലേറ്റ് പേജ് ക്ലാസ് ശക്തമായി ടൈപ്പ് ചെയ്ത ലിങ്കിലൂടെ ലഭ്യമാകും. TypeName ആട്രിബ്യൂട്ട് തരത്തിന്റെ പേര് വ്യക്തമാക്കുന്നു, കൂടാതെ വിർച്ച്വൽപാത്ത് ടെംപ്ലേറ്റ് ഫയലിന്റെ വെബ് ആപ്ലിക്കേഷൻ റൂട്ട് ഡയറക്ടറിയുമായി ബന്ധപ്പെട്ട പാത വ്യക്തമാക്കുന്നു.

ഈ രീതിയിൽ പേജ് അതിന്റെ ഘടകങ്ങളുടെ ഗുണങ്ങളിലേക്കുള്ള ബാഹ്യ ആക്സസ് അനുവദിക്കുന്നു.

void Page_Load() ( Master.FooterText = "ഇതൊരു ഇഷ്‌ടാനുസൃത അടിക്കുറിപ്പാണ്"; AdRotator പരസ്യം = (AdRotator)Master.FindControl("MyAdRotator"); എങ്കിൽ (പരസ്യം != null) ( ad.BorderColor = System.Drawing.Color. പർപ്പിൾ; ad.BorderWidth = 10;) )
നെസ്റ്റഡ് മാസ്റ്റർ പേജുകൾ

ഡിസൈൻ ടെംപ്ലേറ്റുകൾക്ക് മറ്റ് ടെംപ്ലേറ്റുകൾ അവകാശമാക്കാം. ഉദാഹരണത്തിന്, ഒരു സൈറ്റ് നിരവധി വിഭാഗങ്ങൾ ഉൾക്കൊള്ളുന്നു. എല്ലാ സൈറ്റ് പേജുകൾക്കും പൊതുവായ ഘടകങ്ങളുണ്ട്, കൂടാതെ എല്ലാ വിഭാഗം പേജുകൾക്കും മറ്റ് പൊതുവായ ഘടകങ്ങളുണ്ട്. പൂക്കട വെബ്സൈറ്റിൽ വറ്റാത്തതും വാർഷികവുമായ പൂക്കൾക്കുള്ള വിഭാഗങ്ങൾ അടങ്ങിയിരിക്കുന്നു. പൊതുവായ സൈറ്റ് ടെംപ്ലേറ്റ് അവകാശമാക്കുന്ന ടെംപ്ലേറ്റുകൾ അവർക്കായി സൃഷ്ടിച്ചു.

വറ്റാത്തവ

ഡാഫോഡിൽസ് വിവരിക്കുന്ന പേജ് വറ്റാത്ത പൂക്കൾ വിഭാഗത്തിലാണ്, കൂടാതെ SectionPerrenials ടെംപ്ലേറ്റിന് അവകാശമുണ്ട്.

ഡാഫോഡിൽസ് വസന്തത്തിന്റെ തുടക്കത്തിൽ പൂക്കുകയും വളരുന്ന സീസണിനെ സ്വാഗതം ചെയ്യുകയും ചെയ്യുന്നു.
സംഭവങ്ങളുടെ ക്രമം

സെർവറിൽ ഒരു സംയോജിത പേജ് റെൻഡർ ചെയ്യുമ്പോൾ, ടെംപ്ലേറ്റ് പേജും ഉള്ളടക്ക പേജും ഇവന്റുകൾ സംഭവിക്കുന്നു. ഈ ഇവന്റുകളുടെ ക്രമം നമുക്ക് അവരുടെ ഹാൻഡ്‌ലറുകൾ പ്രോഗ്രാം ചെയ്യണോ എന്നറിയാൻ ഉപയോഗപ്രദമാണ്.

നെസ്റ്റഡ് മാസ്റ്റർ പേജ് നിയന്ത്രണങ്ങൾ ആരംഭിക്കുന്നു.

നെസ്റ്റഡ് ഉള്ളടക്ക പേജ് നിയന്ത്രണങ്ങൾ ആരംഭിക്കുന്നു.

പ്രധാന പേജ് തന്നെ ആരംഭിക്കുന്നു.

ഉള്ളടക്ക പേജ് ആരംഭിക്കുന്നു.

ഉള്ളടക്ക പേജിന്റെ Page_LoadComplete ഇവന്റ്

LoadComplete ഇവന്റ് അവതരിപ്പിച്ചു, അതിനാൽ അതിന്റെ Page_Load-ൽ സൃഷ്‌ടിച്ച പ്രധാന പേജ് ഘടകങ്ങൾ ഉള്ളടക്ക പേജിൽ നിന്ന് ആക്‌സസ് ചെയ്യാൻ കഴിയും. ഉള്ളടക്ക പേജിന്റെ പേജ്_ലോഡ് ഹാൻഡ്‌ലറിൽ ഇത് ചെയ്യാൻ കഴിയില്ല, കാരണം ഇത് പ്രധാന പേജിന് മുമ്പായി ലോഡ് ചെയ്തിരിക്കുന്നു.

പ്ലാറ്റ്ഫോം-നിർദ്ദിഷ്ട ടെംപ്ലേറ്റ് പേജുകൾ

മിക്ക കേസുകളിലും, കാണുന്നതിനായി ആപ്ലിക്കേഷനുകൾ വികസിപ്പിച്ചെടുത്തിട്ടുണ്ട് വത്യസ്ത ഇനങ്ങൾകണ്ടെയ്നറുകൾ. ഇവ പോക്കറ്റ് കമ്പ്യൂട്ടറുകളിലും മൊബൈൽ ഫോണുകളിലും വിവിധ ബ്രൗസറുകൾ അല്ലെങ്കിൽ വെബ്‌സൈറ്റ് വ്യൂവർ ആകാം.

അതിനാൽ, പേജ് നിർദ്ദേശത്തിന്റെ MasterPageFile ആട്രിബ്യൂട്ടിൽ നിർദ്ദിഷ്ട കണ്ടെയ്‌നറുകൾക്കായി വ്യത്യസ്ത ടെംപ്ലേറ്റ് പേജുകൾ നിർവചിക്കാൻ ASP.NET 2.0 നിങ്ങളെ അനുവദിക്കുന്നു.

ഉപസംഹാരം

എല്ലാ പേജുകളിലും പൊതുവായ തലക്കെട്ടുകൾ, അടിക്കുറിപ്പുകൾ, നാവിഗേഷൻ എന്നിവ ഉൾപ്പെടുന്ന ആപ്പുകൾ സൃഷ്ടിക്കുമ്പോൾ, ഡിസൈൻ പാറ്റേണുകൾ വഴി ജീവിതം എളുപ്പമാക്കാം. അവ ഉപയോഗിക്കാൻ എളുപ്പമാണ് കൂടാതെ മുഴുവൻ ആപ്ലിക്കേഷനും അപ്ഡേറ്റ് ചെയ്യുന്നതിലൂടെ എപ്പോൾ വേണമെങ്കിലും മാറ്റാവുന്നതാണ്.

നിങ്ങൾക്കറിയാവുന്നതുപോലെ, മിക്ക സൈറ്റുകൾക്കും പൊതുവായി അംഗീകരിക്കപ്പെട്ട പേജ് ലേഔട്ട് ഉണ്ട്, അതിന്റെ അവിഭാജ്യ ഘടകമാണ് തലക്കെട്ടും അടിക്കുറിപ്പും, ഒരുപക്ഷേ, ഏറ്റവും പ്രധാനപ്പെട്ട ഭാഗം - പേജിന്റെ ബോഡി, തീർച്ചയായും ഒഴിവാക്കലുകൾ ഉണ്ടെങ്കിലും. ASP .NET 2.x സൈറ്റ് പേജുകൾക്കായി ഒരേ മാർക്ക്അപ്പ് സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു അദ്വിതീയ രീതി വാഗ്ദാനം ചെയ്യുന്നു - ഇത് മാസ്റ്റർ പേജുകൾ എന്ന് വിളിക്കപ്പെടുന്ന ഉപയോഗമാണ്. നിങ്ങൾ കൂടെ പ്രവർത്തിച്ചിട്ടുണ്ടെങ്കിൽ മുമ്പത്തെ പതിപ്പുകൾ ASP (ASP, ASP .NET 1.x), എ‌എസ്‌പി ഘടകങ്ങൾ ഉപയോഗിച്ച് പേജിന്റെ HTML കോഡ് നിങ്ങൾ നിരന്തരം പകർത്തേണ്ടതുണ്ടെന്ന് നിങ്ങൾ ഓർക്കുന്നുണ്ടാകാം. തീർച്ചയായും, ക്ലാസിക് ASP-യിൽ ഫയലുകൾ ഉൾപ്പെടുത്തുക, കൂടാതെ ASP .NET 1.x-ലെ ഉപയോക്തൃ നിയന്ത്രണങ്ങൾ (*.ascx), വളരെ ലളിതമാക്കിയ വെബ്‌സൈറ്റ് വികസനം, എന്നാൽ ഇത് ASP .NET 2 വാഗ്ദാനം ചെയ്യുന്നതുമായി താരതമ്യപ്പെടുത്തുന്നില്ല.

ആരാണ് ഈ മാസ്റ്റർ പേജുകൾ?

അപ്പോൾ, എന്താണ് ഒരു മാസ്റ്റർ പേജ്? *.master വിപുലീകരണമുള്ള ഒരു ഫയലാണ് മാസ്റ്റർ പേജ്; നിങ്ങൾക്ക് ഇതിനകം പരിചിതമായ aspx പേജ് ഫയലുകളിൽ നിന്ന് ഇത് പ്രായോഗികമായി വ്യത്യസ്തമല്ല. മാസ്റ്റർ പേജ് ഉള്ളടക്കത്തിനായുള്ള ഒരു കണ്ടെയ്‌നറാണ്, കൂടാതെ പേജ് html മാർക്ക്അപ്പ്, html ഘടകങ്ങൾ, സെർവർ നിയന്ത്രണങ്ങൾ, ഉപയോക്തൃ നിയന്ത്രണങ്ങൾ എന്നിവ അടങ്ങിയിരിക്കാം. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, മാസ്റ്റർ പേജിൽ പേജ് ലേഔട്ട്, അതേ തലക്കെട്ടും അടിക്കുറിപ്പും, നാവിഗേഷൻ മെനു, അടിസ്ഥാനപരമായി സൈറ്റിന്റെ എല്ലാ പേജുകളിലും യഥാർത്ഥത്തിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്ന എല്ലാം അടങ്ങിയിരിക്കുന്നു, കൂടാതെ മാസ്റ്റർ പേജിൽ ഉള്ളടക്കത്തിന് പകരമായി ഒന്നോ അതിലധികമോ ഫീൽഡുകളും അടങ്ങിയിരിക്കുന്നു (കാണുക. ചിത്രം 1 ). ഉള്ളടക്കം തന്നെ aspx പേജുകളിൽ സ്ഥിതിചെയ്യുന്നു, അത് മാസ്റ്റർ പേജിലേക്ക് ലിങ്കുചെയ്യുന്നു. ഈ രീതിയിൽ, ഡെവലപ്പർക്ക് ഇനി പേജ് മാർക്ക്അപ്പ് ഡ്യൂപ്ലിക്കേറ്റ് ചെയ്യേണ്ടതില്ല, കാരണം അത് ഒരു ഫയലിലായിരിക്കും.

അരി. 1. മാസ്റ്റർ പേജ്.

മാസ്റ്റർ പേജുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നു

ഞാൻ പറഞ്ഞതുപോലെ, ഒരു മാസ്റ്റർ പേജ് aspx പേജുകളുമായി വളരെ സാമ്യമുള്ളതാണ്, പക്ഷേ നിരവധി വ്യത്യാസങ്ങളുണ്ട്. അതിനാൽ, @പേജ് നിർദ്ദേശത്തിന് പകരം, മാസ്റ്റർ പേജിന് @Master നിർദ്ദേശമുണ്ട്. @Master നിർദ്ദേശത്തിന് @Page-ന്റെ അതേ പാരാമീറ്ററുകൾ ഉണ്ട്; അവ മിക്കപ്പോഴും ഉപയോഗിക്കാറുണ്ട് ഇനിപ്പറയുന്ന പാരാമീറ്ററുകൾ: ഭാഷ - കോഡ് എഴുതിയ ഭാഷയെ സൂചിപ്പിക്കുന്നു; ഡീബഗ് - ഡീബഗ്ഗിംഗ് മോഡിന്റെ അവസ്ഥ സൂചിപ്പിക്കുന്നു; അവകാശങ്ങൾ - വ്യക്തിഗത കോഡ് ക്ലാസിന്റെ പേര് അടങ്ങിയിരിക്കുന്നു; ClassName - പേജ് പ്രോസസ്സ് ചെയ്യുമ്പോൾ സൃഷ്ടിച്ച ക്ലാസിന്റെ പേര് വ്യക്തമാക്കുന്നു; EnabledTheming - തീമുകൾ ഉപയോഗിക്കുന്നതിന്റെ അവസ്ഥ നിർണ്ണയിക്കുന്നു; Src - പേര് വ്യക്തമാക്കുന്നു ഉറവിട ഫയൽഒരു പ്രത്യേക കോഡ് ക്ലാസിനൊപ്പം.
എന്നത് ഇവിടെ ശ്രദ്ധിക്കേണ്ടതാണ് നിർദ്ദിഷ്ട പരാമീറ്ററുകൾ@Master നിർദ്ദേശത്തിൽ ചൈൽഡ് പേജുകൾ (ഉള്ളടക്ക പേജുകൾ) പാരമ്പര്യമായി ലഭിക്കുന്നതല്ല, മറിച്ച് മാസ്റ്റർ പേജിനുള്ളിൽ മാത്രമാണ് ഉപയോഗിക്കുന്നത്. ഉദാഹരണത്തിന്, ഒരു മാസ്റ്റർ പേജിനുള്ള ഭാഷാ ആർഗ്യുമെന്റ് C# ആയിരിക്കാം, ഉള്ളടക്ക പേജുകൾക്ക് അത് VB ആയിരിക്കാം.
@Register, @Import മുതലായവ പോലുള്ള aspx പേജുകളുടെ അതേ നിർദ്ദേശങ്ങൾ മാസ്റ്റർ പേജുകൾക്കും ഉപയോഗിക്കാം.
ഓരോ മാസ്റ്റർ പേജും (സൈറ്റ് ഘടനയെയും ആവശ്യങ്ങളെയും ആശ്രയിച്ച് ഒരു പ്രോജക്റ്റിൽ അവയിൽ പലതും ഉണ്ടാകാം, ഉദാഹരണത്തിന്, ഒരു ഫോറത്തിനുള്ള ഒരു മാസ്റ്റർ പേജ്, മറ്റൊന്ന് സൈറ്റിന്റെ ബാക്കി ഭാഗങ്ങൾ) കുറഞ്ഞത് ഒരു ContentPlaceHolder ഘടകമെങ്കിലും ഉണ്ടായിരിക്കണം. യഥാർത്ഥത്തിൽ ഉള്ളടക്കത്തിനായുള്ള ഒരു കണ്ടെയ്നർ. ContentPlaceHolder ഘടകം സാധാരണയായി ശൂന്യമാണ്, എന്നാൽ aspx പേജുകളിൽ ഉള്ളടക്കം ഇല്ലെങ്കിൽ സ്ഥിരസ്ഥിതിയായി പ്രദർശിപ്പിക്കുന്ന ഉള്ളടക്കവും ഇതിൽ അടങ്ങിയിരിക്കാം. aspx പേജുകളിലെ ഉള്ളടക്ക ഘടകത്തിൽ ഉള്ളടക്കം തന്നെ കാണപ്പെടുന്നു. ഉള്ളടക്ക നിയന്ത്രണം ഉള്ളടക്ക പേജിന്റെ പ്രധാന ഘടകമാണ് കൂടാതെ ContentPlaceHolder എലമെന്റുമായി ചേർന്ന് മാത്രമേ പ്രവർത്തിക്കൂ.
ഉള്ളടക്ക പേജുകൾക്കായുള്ള മാസ്റ്റർ പേജിന്റെ റഫറൻസ് MasterPageFile പാരാമീറ്ററിലെ @Page ഡയറക്‌ടീവിൽ ആകാം, അത് മാസ്റ്റർ പേജ് ഫയലിലേക്കുള്ള പാത വ്യക്തമാക്കുന്നു, ഉദാഹരണത്തിന്:

കൂടാതെ, മാസ്റ്റർ പേജിലേക്കുള്ള ലിങ്ക് web.config ഫയലിൽ സ്ഥിതിചെയ്യാൻ കഴിയും, ഈ സാഹചര്യത്തിൽ web.config (അല്ലെങ്കിൽ web.config ആണെങ്കിൽ മുഴുവൻ ആപ്ലിക്കേഷനിലും) മാസ്റ്റർ പേജ് ഒരേ ഫോൾഡറിൽ സ്ഥിതി ചെയ്യുന്ന എല്ലാ aspx പേജുകൾക്കും ബാധകമാകും. റൂട്ട് ഡയറക്ടറി ആപ്ലിക്കേഷനുകളിൽ ഉണ്ട്), ഉദാഹരണത്തിന്:

കൂടാതെ, Page_PreInit ഇവന്റിന്റെ കൈകാര്യം ചെയ്യലിൽ MsterPageFile പ്രോപ്പർട്ടി മാറ്റുന്നതിലൂടെ പ്രോഗ്രാം നിർവ്വഹണ വേളയിൽ റഫറൻസ് പേജ് വ്യക്തമാക്കാൻ കഴിയും. ഉദാഹരണത്തിന്:

സംരക്ഷിത ഉപ പേജ്_ഇനിറ്റ് (ByVal അയച്ചയാൾ ഒബ്ജക്റ്റായി, ByVal e ആയി സിസ്റ്റം.EventArgs) എന്നെ കൈകാര്യം ചെയ്യുന്നു.Init Me.MasterPageFile= "~/NewMasterPage.master" എൻഡ് സബ്

കുറിപ്പ്, ഈ കോഡ്ഒരു aspx പേജിലെ @Page നിർദ്ദേശത്തിൽ MasterPageFile ആർഗ്യുമെന്റ് വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ ഒരു പിശക് സംഭവിക്കും.
@Master നിർദ്ദേശത്തിന്റെ MasterPageFile ആർഗ്യുമെന്റിൽ മാസ്റ്റർ പേജിലേക്കുള്ള പാത വ്യക്തമാക്കുന്നതിലൂടെ മാസ്റ്റർ പേജുകൾക്ക് തന്നെ മറ്റ് മാസ്റ്റർ പേജുകളിലേക്ക് ലിങ്ക് ചെയ്യാൻ കഴിയുമെന്നതും ശ്രദ്ധിക്കേണ്ടതാണ്.

സിദ്ധാന്തത്തിൽ നിന്ന് പരിശീലനത്തിലേക്ക്

അതിനാൽ, ഒരുപക്ഷേ സിദ്ധാന്തം മതിയാകും, നമുക്ക് മുന്നോട്ട് പോകാം പ്രായോഗിക ഉപയോഗംമാസ്റ്റർ പേജുകൾ. ആദ്യം, നമുക്ക് ഒരു ലളിതമായ മാസ്റ്റർ പേജ് ഉണ്ടാക്കാം, അതിനെ MasterPage.master എന്ന് വിളിക്കുക:

മാസ്റ്റർ പേജുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിനുള്ള ഒരു ലളിതമായ ഉദാഹരണം ഈ ഡിസൈൻ ടെംപ്ലേറ്റ് എല്ലാ ഉള്ളടക്ക പേജുകളിലും ഉണ്ടായിരിക്കും പകർപ്പവകാശം (സി) ഒരു പകർപ്പവകാശം മാത്രം

ContentPlaceHolder ഘടകം ശ്രദ്ധിക്കുക. മാസ്റ്റർ പേജിൽ ഈ ഘടകത്തിന്റെ സാന്നിധ്യം നിർബന്ധമാണ്, ഞാൻ ഇതിനകം പറഞ്ഞതുപോലെ, ഇത് ഉള്ളടക്കത്തിനുള്ള ഒരു കണ്ടെയ്നർ ഘടകമായി വർത്തിക്കുന്നു.
ഇപ്പോൾ, നമ്മുടെ മാസ്റ്റർ പേജിലേക്ക് ലിങ്ക് ചെയ്യുന്ന ഉള്ളടക്കമുള്ള നിരവധി aspx പേജുകൾ സൃഷ്ടിക്കാം. സ്ഥാപിത പാരമ്പര്യവും മാനദണ്ഡങ്ങളും അനുസരിച്ച് ആദ്യ പേജിനെ Default.aspx എന്ന് വിളിക്കും

ഹലോ, ഇതാണ് ഹോം പേജ് ഉള്ളടക്കം!
മറ്റൊരു പേജിലേക്ക് പോകുക

@പേജ് ഡയറക്‌ടീവിലെ MasterPageFile ആർഗ്യുമെന്റ് ശ്രദ്ധിക്കുക, അത് മാസ്റ്റർ പേജ് ഫയലിലേക്ക് ചൂണ്ടിക്കാണിക്കുന്നു, ഞങ്ങളുടെ കാര്യത്തിൽ ആപ്ലിക്കേഷൻ റൂട്ട് ഡയറക്‌ടറിയിൽ സ്ഥിതി ചെയ്യുന്ന MasterPage.master ഫയൽ.
നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ഉള്ളടക്ക പേജിൽ ടാഗുകൾ അടങ്ങിയിട്ടില്ല , കൂടാതെ , ഈ ടാഗുകൾ ഞങ്ങളുടെ മാസ്റ്റർ പേജിൽ ഇതിനകം തന്നെ ഉള്ളതിനാൽ. ഉള്ളടക്ക ഘടകത്തിലേക്ക് ശ്രദ്ധിക്കുക, പ്രത്യേകിച്ച് അതിന്റെ ContentPlaceHolderID പാരാമീറ്റർ - ഇത് മാസ്റ്റർ പേജിലെ ഉള്ളടക്ക കണ്ടെയ്‌നറിന്റെ പേര് സൂചിപ്പിക്കുന്നു, അതായത്. ഉള്ളടക്കം ചേർക്കുന്ന ContentPlaceHolder ഘടകത്തിന്റെ പേര്. ഉള്ളടക്ക ഘടകത്തിൽ തന്നെ ഉള്ളടക്കത്തിന്റെ വാചകം അടങ്ങിയിരിക്കുന്നു; വാചകത്തിന് പുറമേ, അതിൽ aspx പേജുകളുടെ ഏതെങ്കിലും സാധുവായ ഘടകങ്ങൾ അടങ്ങിയിരിക്കാം.
ഇപ്പോൾ മറ്റൊരു aspx പേജ് സൃഷ്ടിക്കുക, അതിനെ രണ്ടാമത് എന്ന് വിളിക്കുക:

പേജിന്റെ രണ്ടാം പേജിന്റെ ഉള്ളടക്കം ഇവിടെയുണ്ട്!
ഹോം പേജിലേക്ക് പോകുക

ഇപ്പോൾ പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക, ASP .NET മാസ്റ്റർ പേജിനെ ഉള്ളടക്ക പേജുമായി ബന്ധിപ്പിക്കും.

മാസ്റ്റർ പേജ് പ്രോപ്പർട്ടികൾ ആക്സസ് ചെയ്യുക

ആക്സസ്സ് ഒബ്ജക്റ്റ് മോഡൽമാസ്റ്റർ പ്രോപ്പർട്ടി വഴി മാസ്റ്റർ പേജ് സാധ്യമാണ്, എന്നാൽ നിങ്ങൾ നേരിട്ട് മാസ്റ്റർ പേജ് ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ, ഒരു പിശക് സംഭവിക്കും. കാരണം, മാസ്റ്റർ പേജ് മാസ്റ്റർ പേജ് ഒബ്‌ജക്റ്റിന്റെ ഒരു റഫറൻസാണ്, മാത്രമല്ല പൊതു സ്വത്തുക്കളിലേക്കും രീതികളിലേക്കും മാത്രമേ പ്രവേശനം നൽകൂ.
ഉദാഹരണത്തിന്, മാസ്റ്റർ പേജിൽ ഒരു ലേബൽ ഘടകം സ്ഥാപിച്ച് അതിനെ lblTitle എന്ന് വിളിക്കുക. ഈ മൂലകത്തിന്റെ വാചകം മാറ്റാൻ, നിങ്ങൾ മാസ്റ്റർ പേജ് ക്ലാസിൽ ഉചിതമായ പ്രോപ്പർട്ടികൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്:

പൊതുസ്വത്ത് MyTitle() String ആയി നേടുക MyTitle = lblTitle.Text End നേടുക (ByVal value as String) lblTitle.Text = മൂല്യം അവസാനം സെറ്റ് എൻഡ് പ്രോപ്പർട്ടി

ഇപ്പോൾ, നിങ്ങൾക്ക് മാസ്റ്റർ പേജിന്റെ lblTitle എലമെന്റിലെ ടെക്‌സ്‌റ്റ് ചലനാത്മകമായി മാറ്റാനോ നേടാനോ കഴിയും, ഉദാഹരണത്തിന്, ഒരു aspx പേജിന്റെ ലോഡിംഗ് ഇവന്റ് പ്രോസസ്സ് ചെയ്യുമ്പോൾ:

സംരക്ഷിത ഉപ പേജ്_ലോഡ് (ByVal അയച്ചയാൾ ഒബ്ജക്റ്റായി, ByVal e ആയി സിസ്റ്റം.EventArgs) Me.Load CType(Master, MasterPage) കൈകാര്യം ചെയ്യുന്നു.MyTitle = "ഹലോ!" End Sub!}

അത്രയേയുള്ളൂ, നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളുണ്ടെങ്കിൽ, എഴുതുക, ഞാൻ ഉത്തരം നൽകാൻ ശ്രമിക്കും.

പേജ് ക്ലാസ്

ഒരു പേജിന്റെ ജീവിത ചക്രം എന്താണെന്നും ഒരു പേജിൽ നിയന്ത്രണങ്ങൾ അടങ്ങിയിരിക്കുന്നതെങ്ങനെയെന്നും നിങ്ങൾ ഇപ്പോൾ കണ്ടുകഴിഞ്ഞു, പേജ് തന്നെ ഒരു നിയന്ത്രണ ഒബ്‌ജക്റ്റായി തൽക്ഷണം നൽകിയിട്ടുണ്ടെന്ന് ചൂണ്ടിക്കാണിക്കാൻ ഇത് സഹായിക്കുന്നു. വാസ്തവത്തിൽ, എല്ലാ വെബ് ഫോമുകളും യഥാർത്ഥത്തിൽ ഉദാഹരണങ്ങളാണ് ക്ലാസ് പേജ്നെയിംസ്പേസിൽ ഉള്ള ASP.NET-ൽ നിന്ന് System.Web.UI.

ഓരോ കോഡ്-ബാക്ക് ക്ലാസും System.Web.UI.Page-ൽ നിന്ന് വ്യക്തമായി അവകാശപ്പെടുന്നതായി ശ്രദ്ധിച്ചുകൊണ്ട് നിങ്ങൾ ഇത് ഇതിനകം ഊഹിച്ചിരിക്കാം. ഇതിനർത്ഥം നിങ്ങൾ സൃഷ്‌ടിക്കുന്ന ഓരോ വെബ് ഫോമും മുമ്പ് കണ്ട FindControl() രീതിയും IsPostBack പ്രോപ്പർട്ടിയും പോലുള്ള വലിയൊരു പ്രവർത്തനക്ഷമത ഉടനടി നേടുന്നു എന്നാണ്. കൂടാതെ, പേജിൽ നിന്നുള്ള അവകാശം ഇനിപ്പറയുന്ന വളരെ ഉപയോഗപ്രദമായ പ്രോപ്പർട്ടികളിലേക്ക് നിങ്ങളുടെ കോഡ് ആക്സസ് നൽകുന്നു:

ഈ പ്രോപ്പർട്ടികളിൽ പലതും ക്ലാസിക് ASP.NET വെബ് പേജുകളിൽ ഉപയോഗിക്കാവുന്ന ആന്തരിക ഒബ്‌ജക്‌റ്റുകളുമായി പൊരുത്തപ്പെടുന്നു. എന്നിരുന്നാലും, ഇൻ ക്ലാസിക് പതിപ്പ്എല്ലായ്‌പ്പോഴും ലഭ്യമായ ബിൽറ്റ്-ഇൻ ഒബ്‌ജക്‌റ്റുകൾ ഉപയോഗിച്ചാണ് ASP ഈ പ്രവർത്തനം ആക്‌സസ് ചെയ്‌തത്. ASP.NET-ൽ, ഈ ബിൽറ്റ്-ഇൻ ഒബ്‌ജക്‌റ്റുകളിൽ ഓരോന്നും യഥാർത്ഥത്തിൽ ഒരു പേജ് പ്രോപ്പർട്ടിയുമായി യോജിക്കുന്നു, ഇത് പൂർണ്ണമായി പ്രവർത്തനക്ഷമമായ ഒരു ക്ലാസിന്റെ ഉദാഹരണം നൽകുന്നു.

ഈ വസ്തുക്കൾ തുടർന്നുള്ള വിഭാഗങ്ങളിൽ കൂടുതൽ വിശദമായി വിവരിച്ചിരിക്കുന്നു.

സെഷൻ, ആപ്ലിക്കേഷൻ, കാഷെ ഒബ്ജക്റ്റുകൾ

സെഷൻ ഒബ്ജക്റ്റ് ക്ലാസിന്റെ ഒരു ഉദാഹരണമാണ് System.Web.SessionState.HttpSessionState. വെബ് പേജ് അഭ്യർത്ഥനകൾക്കിടയിൽ നിലനിൽക്കുന്ന ഏത് തരത്തിലുള്ള ഉപയോക്തൃ ഡാറ്റയും സംഭരിക്കുന്നതിനാണ് ഇത് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. സെഷൻ ഒബ്‌ജക്‌റ്റ് ആ സെഷനായി ഉപയോക്തൃ ഡാറ്റയെ പ്രതിനിധീകരിക്കുന്ന ഒരു കൂട്ടം നെയിം-വാല്യൂ ജോഡികളിലേക്ക് നിഘണ്ടു ആക്‌സസ് നൽകുന്നു. ഉപഭോക്താവിന്റെ പേരും ഐഡിയും, ഷോപ്പിംഗ് കാർട്ടും അല്ലെങ്കിൽ ഉപയോക്താവ് ഇനി വെബ്‌സൈറ്റ് പേജുകൾ സന്ദർശിക്കാത്തപ്പോൾ ഇല്ലാതാക്കപ്പെടുന്ന മറ്റ് ഇനങ്ങളും പോലുള്ള വിവരങ്ങൾ നിലനിർത്താൻ സെഷൻ നില ഉപയോഗിക്കാറുണ്ട്.

ആപ്ലിക്കേഷൻ ഒബ്ജക്റ്റ് ക്ലാസിന്റെ ഒരു ഉദാഹരണമാണ് System.Web.HttpApplicationState. സെഷൻ ഒബ്‌ജക്റ്റ് പോലെ, ഇത് നാമ മൂല്യ ഡാറ്റയുടെ ഒരു നിഘണ്ടു കൂടിയാണ്. എന്നിരുന്നാലും, ഈ ഡാറ്റ മുഴുവൻ ആപ്ലിക്കേഷനും ആഗോളമാണ്.

കാഷെ ഒബ്ജക്റ്റിനെ സംബന്ധിച്ചിടത്തോളം, ഇത് ക്ലാസിന്റെ ഒരു ഉദാഹരണമാണ് System.Web.Caching.Cache. ഇത് ആഗോള വിവരങ്ങളും സംഭരിക്കുന്നു, എന്നാൽ ഇത് കൂടുതൽ സ്കെയിലബിൾ സ്റ്റോറേജ് മെക്കാനിസം വാഗ്ദാനം ചെയ്യുന്നു, കാരണം ASP.NET സെർവർ മെമ്മറി തീർന്നാൽ ഒബ്ജക്റ്റുകൾ ഇല്ലാതാക്കാൻ കഴിയും. മറ്റ് സംസ്ഥാന സെറ്റുകളെപ്പോലെ, ഇത് പ്രധാനമായും നെയിം-വാല്യൂ ഒബ്‌ജക്റ്റുകളുടെ ഒരു ശേഖരമാണ്, എന്നാൽ നിങ്ങൾക്ക് ഇഷ്‌ടാനുസൃത കാലഹരണപ്പെടൽ നയങ്ങൾ സജ്ജമാക്കാനും ഓരോ ഘടകത്തിനും ഡിപൻഡൻസികൾ നിർവചിക്കാനും കഴിയും.

ഒരു വെബ് ആപ്ലിക്കേഷൻ വികസിപ്പിക്കുന്നതിലെ പ്രധാന ചുമതലകളിൽ ഒന്നാണ് സ്റ്റേറ്റ് മാനേജ്മെന്റ് എങ്ങനെ നടപ്പിലാക്കണമെന്ന് തിരഞ്ഞെടുക്കുന്നത്.

വസ്തു അഭ്യർത്ഥിക്കുക

System.Web.HttpRequest ക്ലാസിന്റെ ഒരു ഉദാഹരണമാണ് റിക്വസ്റ്റ് ഒബ്‌ജക്റ്റ്. ഈ ഒബ്‌ജക്റ്റ് HTTP അഭ്യർത്ഥനയുടെ മൂല്യങ്ങളെയും ഗുണങ്ങളെയും പ്രതിനിധീകരിക്കുന്നു, അത് പേജ് ലോഡുചെയ്യുന്നതിന് കാരണമായി. URL-നെ സംബന്ധിച്ച എല്ലാ പാരാമീറ്ററുകളും ക്ലയന്റ് അയച്ച മറ്റെല്ലാ ഡാറ്റയും ഇതിൽ അടങ്ങിയിരിക്കുന്നു. അഭ്യർത്ഥന ഒബ്‌ജക്‌റ്റ് നൽകുന്ന വിവരങ്ങളിൽ ഭൂരിഭാഗവും കൂടുതൽ അമൂർത്തങ്ങളാൽ പൊതിഞ്ഞതാണ് ഉയർന്ന തലം(ഉദാഹരണത്തിന്, ASP.NET വെബ് കൺട്രോൾ മോഡൽ റാപ്പർ), അതിനാൽ ഇത് ക്ലാസിക് ASP ഡെവലപ്‌മെന്റിൽ ഉള്ളതുപോലെ അത്ര പ്രധാനമല്ല.

എന്നിരുന്നാലും, അഭ്യർത്ഥന ഒബ്‌ജക്റ്റ് തുടർന്നും ഉപയോഗിക്കാം, ഉദാഹരണത്തിന്, ക്ലയന്റ് ഉപയോഗിക്കുന്ന ബ്രൗസർ എന്താണെന്ന് കണ്ടെത്താനോ കുക്കികൾ സൃഷ്‌ടിച്ചതിന് ശേഷം അവയുടെ ഉള്ളടക്കം പരിശോധിക്കാനോ.

അഭ്യർത്ഥന ഒബ്‌ജക്റ്റിന്റെ ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്ന ചില പ്രോപ്പർട്ടികൾ ചുവടെയുള്ള പട്ടിക പട്ടികപ്പെടുത്തുന്നു:

HttpRequest ഒബ്‌ജക്റ്റിന്റെ ഗുണവിശേഷതകൾ സ്വത്ത് വിവരണം
അജ്ഞാത ഐഡി അജ്ഞാത ആക്‌സസ് പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ നിലവിലെ ഉപയോക്താവിനെ അദ്വിതീയമായി തിരിച്ചറിയുന്നു.
ApplicationPath, Physical ApplicationPath ApplicationPath ഒരു ASP.NET ആപ്ലിക്കേഷന്റെ വെർച്വൽ ഡയറക്ടറിയുടെ (URL) ലൊക്കേഷനെക്കുറിച്ചുള്ള വിവരങ്ങൾ വീണ്ടെടുക്കുന്നു, കൂടാതെ PhysicalPath അതിന്റെ "യഥാർത്ഥ" ഡയറക്ടറിയുടെ സ്ഥാനത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ വീണ്ടെടുക്കുന്നു.
ബ്രൗസർ ഒരു HttpBrowserCapabilities ഒബ്‌ജക്റ്റിലേക്ക് ഒരു റഫറൻസ് നൽകുന്നു, അതിൽ ഘടകങ്ങളെ പിന്തുണയ്ക്കുന്നുണ്ടോ എന്നതുപോലുള്ള വിവിധ ബ്രൗസർ പ്രവർത്തനങ്ങളെ വിവരിക്കുന്ന പ്രോപ്പർട്ടികൾ അടങ്ങിയിരിക്കുന്നു. ActiveX നിയന്ത്രണങ്ങൾ, കുക്കികൾ, VBScripts, ഫ്രെയിമുകൾ
ക്ലയന്റ് സർട്ടിഫിക്കറ്റ് നിലവിലുണ്ടെങ്കിൽ, നിലവിലെ അഭ്യർത്ഥനയ്ക്കുള്ള സുരക്ഷാ സർട്ടിഫിക്കറ്റ് നൽകുന്ന ഒരു HttpClientCertificate ഒബ്‌ജക്റ്റ്
കുക്കികൾ ഈ അഭ്യർത്ഥനയ്‌ക്കൊപ്പം അയച്ച കുക്കികളുടെ ഒരു ശേഖരം നൽകുന്നു
FilePath, CurrentExecutionFilePath എക്സിക്യൂട്ട് ചെയ്യുന്ന ഫയലിനായി യഥാർത്ഥ പാത ഫയലിലേക്ക് (സെർവറുമായി ബന്ധപ്പെട്ട്) തിരികെ നൽകുക ഈ നിമിഷംപേജുകൾ. ഫയൽപാത്ത് നിർവ്വഹണ പ്രക്രിയ ആരംഭിച്ച പേജിനെ പ്രതിനിധീകരിക്കുന്നു. നിങ്ങൾ ഉപയോക്താവിനെ നീക്കിയിട്ടില്ലെങ്കിൽ ഇത് CurrentExecutionFilePath പോലെയാണ് പുതിയ പേജ്റീഡയറക്ഷൻ ഇല്ലാതെ (ഉദാഹരണത്തിന്, Server.Transfer() രീതി ഉപയോഗിച്ച്), ഈ സാഹചര്യത്തിൽ CurrentExecutionFilePath പുതിയ പേജിനെ പ്രതിഫലിപ്പിക്കുന്നു, കൂടാതെ ഫയൽപാത്ത് യഥാർത്ഥ പേജ് വ്യക്തമാക്കുന്നു.
ഫോം പേജിലേക്ക് തിരികെ അയച്ച ഫോം വേരിയബിളുകളുടെ ഒരു ശേഖരത്തെ പ്രതിനിധീകരിക്കുന്നു. മിക്ക സാഹചര്യങ്ങളിലും, തന്നിരിക്കുന്ന ശേഖരം ഉപയോഗിക്കുന്നതിനുപകരം, നിങ്ങൾ ഈ വിവരങ്ങൾ നിയന്ത്രണത്തിന്റെ സവിശേഷതകളിൽ നിന്ന് വീണ്ടെടുക്കും
തലക്കെട്ടുകളും സെർവർ വേരിയബിളുകളും HTTP ഹെഡറുകളുടെയും സെർവർ വേരിയബിളുകളുടെയും ഒരു നിഘണ്ടു ശേഖരം, പേര് പ്രകാരം സൂചികയിൽ നൽകുക. ഈ ശേഖരങ്ങളിൽ പ്രധാനമായും വെബ് അഭ്യർത്ഥനയ്‌ക്കൊപ്പം ബ്രൗസർ അയച്ച താഴ്ന്ന നിലയിലുള്ള വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു (ഉദാഹരണത്തിന്, ബ്രൗസറിന്റെ തരം, അത് പിന്തുണയ്‌ക്കുന്ന പ്രവർത്തനം, അത് സജ്ജീകരിച്ചിരിക്കുന്ന ഭാഷാ മുൻഗണനകൾ, ഡാറ്റ പ്രാമാണീകരിക്കാൻ ഉപയോഗിക്കുന്ന ഐഡന്റിറ്റികൾ, തുടങ്ങിയവ.). സാധാരണഗതിയിൽ, HttpRequest ഒബ്‌ജക്റ്റിന്റെ മറ്റ് പ്രോപ്പർട്ടികളിൽ നിന്നോ ഉയർന്ന തലത്തിലുള്ള ASP.NET ക്ലാസുകളിൽ നിന്നോ ഈ വിവരങ്ങൾ ലഭിക്കുന്നത് വളരെ എളുപ്പമാണ്.
പ്രാമാണീകരിച്ചതും സുരക്ഷിത കണക്ഷനും ഉപയോക്താവ് ആധികാരികത ഉറപ്പാക്കുകയും സെക്യുർ സോക്കറ്റ്സ് ലെയർ (SSL) പ്രോട്ടോക്കോൾ വഴി ഉപയോക്താവ് കണക്‌റ്റ് ചെയ്യുകയും ചെയ്‌തിട്ടുണ്ടെങ്കിൽ ശരി തിരികെ നൽകുക.
ലോക്കൽ ലോക്കൽ കമ്പ്യൂട്ടറിൽ നിന്ന് ഉപയോക്താവ് പേജ് അഭ്യർത്ഥിച്ചാൽ ശരിയാണെന്ന് നൽകുന്നു
QueryString അന്വേഷണ സ്ട്രിംഗിൽ പാസാക്കിയ പാരാമീറ്ററുകൾ നൽകുന്നു
Url ഉം UrlReferrer ഉം നിലവിലെ പേജ് വിലാസത്തെയും ഉപയോക്താവ് വരുന്ന പേജിനെയും പ്രതിനിധീകരിക്കുന്ന ഒരു Uri ഒബ്‌ജക്റ്റ് തിരികെ നൽകുക ( മുൻപത്തെ താൾഈ പേജിലേക്കുള്ള ഒരു ലിങ്ക് അടങ്ങിയിരിക്കുന്നു)
UserAgent ബ്രൗസർ തരത്തെ പ്രതിനിധീകരിക്കുന്ന ഒരു സ്ട്രിംഗ്. ഇന്റർനെറ്റ് എക്സ്പ്ലോറർഈ പ്രോപ്പർട്ടിക്ക് MSIE മൂല്യം നൽകുന്നു. ഇത് ഏത് തരത്തിലുള്ള ബ്രൗസറാണെന്ന് കണ്ടുപിടിക്കാൻ ASP.NET ഈ വിവരങ്ങൾ ഉപയോഗിക്കുന്നു ഞങ്ങൾ സംസാരിക്കുന്നത്, അതിനാൽ ഈ ബ്രൗസർ ഏത് പ്രവർത്തനത്തെ പിന്തുണയ്‌ക്കണമെന്ന് നിർണ്ണയിക്കാൻ (കുക്കികൾ പോലെ, ജാവാസ്ക്രിപ്റ്റ് സ്ക്രിപ്റ്റുകൾതുടങ്ങിയവ.). ഇത്, വെബ് നിയന്ത്രണങ്ങൾ റെൻഡർ ചെയ്യുന്ന രീതിയെ ബാധിക്കും.
UserHostAddress ഉം UserHostName ഉം റിമോട്ട് ക്ലയന്റിൻറെ IP വിലാസത്തെയും DNS നാമത്തെയും കുറിച്ചുള്ള വിവരങ്ങൾ വീണ്ടെടുക്കുന്നു. സെർവർ വേരിയബിൾസ് ശേഖരം വഴിയും ഈ വിവരങ്ങൾ ആക്സസ് ചെയ്യാൻ കഴിയും. എന്നിരുന്നാലും, പ്രക്ഷേപണം കാരണം നെറ്റ്‌വർക്ക് വിലാസങ്ങൾ(നെറ്റ്‌വർക്ക് വിലാസ വിവർത്തനം - NAT) ഇത് എല്ലായ്പ്പോഴും പ്രാധാന്യമുള്ളതല്ല. ഇൻറർനെറ്റിലേക്ക് അവർ എങ്ങനെ കണക്‌റ്റ് ചെയ്യുന്നു എന്നതിനെ ആശ്രയിച്ച്, പല ക്ലയന്റുകളും ഒരേ ഐപി വിലാസം പങ്കിട്ടേക്കാം (ഉദാഹരണത്തിന്, ഗേറ്റ്‌വേ കമ്പ്യൂട്ടറിന്റെ ഐപി വിലാസം). കൂടാതെ, നിരവധി അഭ്യർത്ഥനകൾ നടത്തിയതിന് ശേഷം ഐപി വിലാസവും മാറിയേക്കാം.
ഉപയോക്തൃ ഭാഷകൾ ക്ലയന്റിന്റെ ഭാഷാ മുൻഗണനകൾ ലിസ്റ്റുചെയ്യുന്ന ഒരു അടുക്കിയ സ്ട്രിംഗ് അറേ നൽകുന്നു. ബഹുഭാഷാ പേജുകൾ സൃഷ്ടിക്കുമ്പോൾ ഉപയോഗപ്രദമാകും
പ്രതികരണ വസ്തു

System.Web.HttpResponse ക്ലാസിന്റെ ഒരു ഉദാഹരണമാണ് പ്രതികരണ ഒബ്‌ജക്റ്റ് കൂടാതെ ഒരു ക്ലയന്റ് അഭ്യർത്ഥനയ്ക്കുള്ള വെബ് സെർവറിന്റെ പ്രതികരണത്തെ പ്രതിനിധീകരിക്കുന്നു. ക്ലാസിക് ASP വികസനത്തിൽ, പ്രതികരണം ഒബ്ജക്റ്റ് ആയിരുന്നു ഒരേ ഒരു വഴിപ്രോഗ്രമാറ്റിക്കായി HTML ടെക്സ്റ്റ് ക്ലയന്റിലേക്ക് അയയ്ക്കുന്നു.

സെർവർ നിയന്ത്രണങ്ങളിൽ ഇപ്പോൾ സ്വയം റെൻഡർ ചെയ്യാനുള്ള നെസ്റ്റഡ് ഒബ്ജക്റ്റ് ഓറിയന്റഡ് രീതികൾ അടങ്ങിയിരിക്കുന്നു. ഡവലപ്പർക്ക് അവരുടെ പ്രോപ്പർട്ടികളുടെ മൂല്യങ്ങൾ സജ്ജീകരിക്കേണ്ടതുണ്ട്. അതുകൊണ്ട് റെസ്‌പോൺസ് ഒബ്‌ജക്റ്റ് അങ്ങനെ കളിക്കാൻ അടുത്ത് പോലും വരുന്നില്ല കേന്ദ്ര പങ്ക്, മുൻപത്തെ പോലെ.

HttpResponse ക്ലാസിലെ ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്ന ചില അംഗങ്ങളെ ഇനിപ്പറയുന്ന പട്ടിക പട്ടികപ്പെടുത്തുന്നു:

HttpResponse ക്ലാസിലെ അംഗങ്ങൾ രീതി അല്ലെങ്കിൽ സ്വത്ത് വിവരണം
ബഫർ ഔട്ട്പുട്ട് ഈ പ്രോപ്പർട്ടി ട്രൂ ആയി സജ്ജീകരിക്കുമ്പോൾ (സ്ഥിരസ്ഥിതി), പേജ് റെൻഡർ ചെയ്യുന്നതുവരെ ക്ലയന്റിലേക്ക് അയയ്‌ക്കില്ല, കഷണങ്ങളായി അയയ്‌ക്കുന്നതിനുപകരം പൂർണ്ണമായി അയയ്‌ക്കാൻ തയ്യാറാകും. ചില പ്രത്യേക സാഹചര്യങ്ങളിൽ ഈ പ്രോപ്പർട്ടി തെറ്റായി സജ്ജീകരിക്കുന്നത് അർത്ഥവത്താണ്.
ഒരു ക്ലയന്റ് ഡൗൺലോഡ് ചെയ്യുമ്പോൾ ഏറ്റവും വ്യക്തമായ ഉദാഹരണം വലിയ ഫയൽ. ബഫർഔട്ട്പുട്ട് പ്രോപ്പർട്ടി തെറ്റ് എന്ന് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, ക്ലയന്റ് ഒരു സേവ് ഡയലോഗ് ബോക്സ് കാണുകയും ഫയൽ പൂർണ്ണമായി ഡൗൺലോഡ് ചെയ്യുന്നതിനുമുമ്പ് ഒരു ഫയലിന്റെ പേര് തിരഞ്ഞെടുക്കുകയും ചെയ്യും.
കാഷെ ഔട്ട്‌പുട്ട് കാഷിംഗ് കോൺഫിഗർ ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന HttpCachePolicy ഒബ്‌ജക്റ്റിനെ ഈ പ്രോപ്പർട്ടി സൂചിപ്പിക്കുന്നു.
കുക്കികൾ പ്രതികരണത്തോടൊപ്പം അയയ്‌ക്കുന്ന കുക്കികളുടെ ശേഖരത്തിലേക്ക് ഈ പ്രോപ്പർട്ടി ആക്‌സസ് നൽകുന്നു. അധിക കുക്കികൾ ചേർക്കാൻ ഇത് ഉപയോഗിക്കാം
കാലഹരണപ്പെടുകയും സമ്പൂർണ്ണ കാലഹരണപ്പെടുകയും ചെയ്യുന്നു ഒരു പേജിന്റെ റെൻഡർ ചെയ്‌ത HTML കാഷെ ചെയ്യാനും തുടർന്നുള്ള അഭ്യർത്ഥനകളിലെ പ്രകടനം മെച്ചപ്പെടുത്താനും ഈ പ്രോപ്പർട്ടികൾ ഉപയോഗിക്കാം.
ClientConnected ബൂളിയൻ മൂല്യം, ക്ലയന്റ് സെർവറുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്നു. ഇത് ഇതിനകം കണക്റ്റുചെയ്‌തിട്ടില്ലെങ്കിൽ, ദീർഘനേരം പ്രവർത്തിക്കുന്ന ചില പ്രവർത്തനം നിങ്ങൾ നിർത്തേണ്ടതായി വന്നേക്കാം
റീഡയറക്‌ട്() ഒരു പുതിയ വെബ് ആപ്ലിക്കേഷൻ പേജിലേക്കോ മറ്റൊരു വെബ്‌സൈറ്റിലേക്കോ പോയിന്റ് ചെയ്യുന്ന മറ്റൊരു URL അഭ്യർത്ഥിക്കാൻ ഈ രീതി ബ്രൗസറിനെ പ്രേരിപ്പിക്കുന്നു
റീഡയറക്‌ട് സ്ഥിരം() റീഡയറക്‌ട്() രീതി പോലെ ഈ രീതി ബ്രൗസറിനെ പുതിയ URL-ലേക്ക് റീഡയറക്‌ട് ചെയ്യുന്നു. കോഡ് ഉപയോഗിക്കുന്നു എന്നതാണ് വ്യത്യാസം HTTP പ്രസ്താവിക്കുന്നു 302 എന്നതിനുപകരം 301 (ഇത് പേജ് ശാശ്വതമായി നീക്കിയെന്ന് സൂചിപ്പിക്കുന്നു)
RedirectToRoute() കൂടാതെ RedirectToRoutePermanent() ഈ രീതികൾ റീഡയറക്‌ട് (), റീഡയറക്‌ട് പെർമനന്റ് () രീതികൾക്ക് സമാനമാണ്. ഒരേയൊരു വ്യത്യാസം അവർ ഒരു റൂട്ട് ഉപയോഗിക്കുന്നു എന്നതാണ് (പേജിലേക്ക് നേരിട്ട് മാപ്പ് ചെയ്യാത്ത രജിസ്റ്റർ ചെയ്ത URL പാറ്റേൺ)
കൈമാറ്റം() പ്രോസസ്സിംഗ് നിർത്താൻ ഈ രീതി ASP.NET-നോട് പറയുന്നു നിലവിലെ പേജ്വെബ് ഫോമിനൊപ്പം പുതിയ (നിർദ്ദിഷ്‌ട) പേജിലേക്ക് പോകുക. ഈ സാഹചര്യത്തിൽ, ബ്രൗസറിന്റെയും വെബ് ആപ്ലിക്കേഷന്റെ ഉപയോക്താവിന്റെയും മുഴുവൻ അയയ്ക്കൽ സൈക്കിളും അറിയിപ്പും ആവശ്യമില്ല
ട്രാൻസ്ഫർ അഭ്യർത്ഥന() ഈ രീതി ട്രാൻസ്ഫർ () ന് സമാനമാണ്, എന്നാൽ ഉപയോക്താവിനെ മറ്റൊരു തരത്തിലുള്ള പേജിലേക്ക് മാറ്റാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു ASP.NET വെബ് ഫോമിൽ നിന്ന് ഒരു HTML പേജിലേക്ക് ഒരു ഉപയോക്താവിനെ അയയ്ക്കാൻ ഇത് ഉപയോഗിക്കാം.
ഇത് ഉപയോഗിക്കുമ്പോൾ, പുതിയ റിസോഴ്‌സ് പ്രോസസ്സ് ചെയ്യുന്നതിനായി, എല്ലാ അനുബന്ധ HTTP മൊഡ്യൂളുകളും സഹിതം മുഴുവൻ IIS പൈപ്പ് ലൈനും പ്രവർത്തനക്ഷമമാക്കുന്നു. എന്നാൽ TransferRequest() രീതിയുമായി ബന്ധപ്പെട്ട നിരവധി കാര്യമായ പരിമിതികൾ ഉണ്ട്. ഉപയോഗിക്കണമെങ്കിൽ അത് ഉപയോഗിക്കണം IIS വെബ് സെർവർ 7 ഇന്റഗ്രേറ്റഡ് മോഡിൽ. കൂടാതെ, നീണ്ട കാലതാമസം തടയുന്നതിന് നിങ്ങൾ സെഷൻ നില (അത് ഏറ്റെടുത്തിട്ടുണ്ടെങ്കിൽ) റിലീസ് ചെയ്യേണ്ടതുണ്ട്
ഉള്ളടക്ക തരം ഏത് തരത്തിലുള്ള ഉള്ളടക്കമാണ് ബ്രൗസറിന് ലഭിക്കേണ്ടതെന്ന് പറയുന്ന ഒരു തലക്കെട്ടിനെ ഈ പ്രോപ്പർട്ടി പ്രതിനിധീകരിക്കുന്നു. സാധാരണഗതിയിൽ, ASP.NET വെബ് ഫോമുകൾ, എല്ലാ വെബ് പേജുകളെയും പോലെ, ടെക്സ്റ്റ്/എച്ച്ടിഎംഎൽ ഉള്ളടക്കം ഉപയോഗിക്കുന്നു (ടെക്‌സ്‌റ്റ് എച്ച്ടിഎംഎൽ കലർന്നത്). എന്നിരുന്നാലും, തത്ത്വത്തിൽ മറ്റ് തരത്തിലുള്ള ഉള്ളടക്കങ്ങൾ നൽകുന്നതിന് ഒരു പ്രത്യേക HTTP ഹാൻഡ്‌ലർ സൃഷ്ടിക്കാൻ കഴിയും
ഔട്ട്പുട്ട് സ്ട്രീം ഈ പ്രോപ്പർട്ടി ബ്രൗസറിലേക്ക് അയച്ച ഡാറ്റയെ ലോ-ലെവൽ ബൈറ്റ് സ്ട്രീം ആയി പ്രതിനിധീകരിക്കുന്നു. .NET ത്രെഡിംഗ് മോഡലുമായി ബന്ധിപ്പിക്കാൻ ഇത് ഉപയോഗിക്കാം
എഴുതുക() പ്രതികരണ സ്ട്രീമിലേക്ക് നേരിട്ട് വാചകം എഴുതാൻ ഈ രീതി നിങ്ങളെ അനുവദിക്കുന്നു. പകരം ഒരു നിയന്ത്രണ മോഡൽ ഉപയോഗിക്കുന്നതാണ് സാധാരണയായി നല്ലത്, കൂടാതെ നിയന്ത്രണങ്ങൾ സ്വന്തം HTML മാർക്ക്അപ്പ് സൃഷ്ടിക്കാൻ അനുവദിക്കുകയും ചെയ്യുന്നു. നിങ്ങൾ ഒരു നിയന്ത്രണ മോഡൽ ഉപയോഗിച്ച് Response.Write() രീതി ഉപയോഗിക്കാൻ ശ്രമിക്കുകയാണെങ്കിൽ, പേജിൽ വാചകം എവിടെ പോകണമെന്ന് തീരുമാനിക്കാനുള്ള കഴിവ് ഡവലപ്പർക്ക് നഷ്‌ടമാകും.
എന്നിരുന്നാലും, സ്വന്തം HTML പ്രാതിനിധ്യം സൃഷ്ടിക്കുന്ന നിയന്ത്രണങ്ങൾ ആദ്യം മുതൽ നിർമ്മിക്കേണ്ട സാഹചര്യങ്ങളിൽ Response.Write() രീതി പ്രധാനമാണ്.
ബൈനറി റൈറ്റും () റൈറ്റ് ഫയലും () ഒരു ബൈറ്റ് അറേയിൽ നിന്നോ ഫയലിൽ നിന്നോ ബൈനറി ഉള്ളടക്കം എടുത്ത് പ്രതികരണ സ്ട്രീമിലേക്ക് നേരിട്ട് എഴുതാൻ ഈ രീതികൾ നിങ്ങളെ അനുവദിക്കുന്നു. അവ ഉപയോഗിച്ച് ഉപയോഗിക്കുക സെർവർ ഘടകങ്ങൾനിയന്ത്രണങ്ങൾ അർത്ഥശൂന്യമാണ്, എന്നാൽ ഒരു ഇഷ്‌ടാനുസൃത HTTP ഹാൻഡ്‌ലർ സൃഷ്‌ടിക്കുമ്പോൾ അവ വളരെ ഉപയോഗപ്രദമാകും.
ഉദാഹരണത്തിന്, ഒരു ഡാറ്റാബേസ് എൻട്രിയിൽ നിന്ന് ഒരു PDF പ്രമാണത്തിനായുള്ള ഡാറ്റ വായിക്കുകയും ബൈനറി റൈറ്റ്() രീതി ഉപയോഗിച്ച് പ്രതികരണ സ്ട്രീമിലേക്ക് നേരിട്ട് എഴുതുകയും ചെയ്യുന്ന ഒരു HTTP ഹാൻഡ്‌ലർ നിങ്ങൾക്ക് സൃഷ്ടിക്കാൻ കഴിയും. ക്ലയന്റ് ഭാഗത്ത്, അന്തിമഫലം ഉപയോക്താവ് ഒരു സ്റ്റാറ്റിക് PDF ഫയൽ അപ്‌ലോഡ് ചെയ്തതിന് സമാനമായി കാണപ്പെടും. അല്ലാതെ റെക്കോർഡ് ചെയ്യുമ്പോൾ HTML ഉള്ളടക്കം ContentType പ്രോപ്പർട്ടി ഉചിതമായ മൂല്യത്തിലേക്ക് സജ്ജീകരിക്കാൻ മറക്കരുത്
പേജുകൾക്കിടയിൽ നീങ്ങുക

മിക്കതും പ്രധാന പ്രവർത്തനംഒരു പേജിൽ നിന്ന് മറ്റൊന്നിലേക്ക് നാവിഗേറ്റ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു ചെറിയ കൂട്ടം രീതികൾ നൽകുന്നതാണ് HttpResponse ക്ലാസ്. അവയിൽ ഏറ്റവും സാർവത്രികമായ റീഡയറക്‌ട് () രീതിയാണ്, ഇത് ഉപയോക്താവിനെ മറ്റൊരു പേജിലേക്ക് റീഡയറക്‌ട് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു. അതിന്റെ പ്രയോഗത്തിന്റെ ഒരു ഉദാഹരണം ചുവടെ:

// നിലവിലെ ഡയറക്‌ടറിയിലെ ഒരു ഫയലിലേക്ക് റീഡയറക്‌ട് ചെയ്യുക. Response.Redirect("PageFlow.aspx"); // മറ്റൊരു വെബ്‌സൈറ്റിലേക്ക് റീഡയറക്‌ട് ചെയ്യുക. Response.Redirect("http://www.google.com");

റീഡയറക്‌ട് () രീതി ആവശ്യമാണ് മുഴുവൻ ചക്രംഅയക്കുന്നു. അടിസ്ഥാനപരമായി, ഇത് ഒരു പുതിയ പേജ് അഭ്യർത്ഥിക്കാൻ കാരണമാകുന്ന ഒരു സന്ദേശം ബ്രൗസറിലേക്ക് അയയ്ക്കുന്നു.

റീഡയറക്‌ട്() രീതിക്ക് ഒരു ബൂളിയൻ മൂല്യം അതിന്റെ രണ്ടാമത്തെ പാരാമീറ്ററായി എടുക്കുന്ന ഒരു ഓവർലോഡ് ഉണ്ട്. പേജ് കോഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നത് തുടരണമോ എന്ന് ഈ മൂല്യം വ്യക്തമാക്കുന്നു. സ്ഥിരസ്ഥിതിയായി, റീഡയറക്‌ട്() ഉപയോക്താവിനെ റീഡയറക്‌ട് ചെയ്‌ത് കണക്ഷൻ ക്ലോസ് ചെയ്‌താലും, പേജിന്റെ ബാക്കി ഇവന്റുകൾക്കൊപ്പം മെത്തേഡിൽ അവശേഷിക്കുന്ന ഏതെങ്കിലും കോഡ് തുടർന്നും എക്‌സിക്യൂട്ട് ചെയ്യപ്പെടും. ആവശ്യമെങ്കിൽ വൃത്തിയാക്കാൻ ഇത് അനുവദിക്കുന്നു. എന്നാൽ രണ്ടാമത്തെ പാരാമീറ്റർ ശരിയാണെങ്കിൽ, ASP.NET ഉടൻ തന്നെ പേജ് പ്രോസസ്സ് ചെയ്യുന്നത് നിർത്തും, ഇത് വെബ് സെർവറിന്റെ ജോലിഭാരം കുറയ്ക്കും.

അതേ വെബ് ആപ്ലിക്കേഷനിൽ ഉപയോക്താവിനെ മറ്റൊരു വെബ് ഫോമിലേക്ക് മാറ്റണമെങ്കിൽ, Server.Transfer() രീതി ഉപയോഗിച്ച് നിങ്ങൾക്ക് വേഗത്തിലുള്ള സമീപനം സ്വീകരിക്കാം. എന്നിരുന്നാലും, ഈ രീതിക്ക് ചില പ്രത്യേകതകൾ ഉണ്ട്. റീഡയറക്‌ട് സെർവർ വശത്ത് സംഭവിക്കുന്നതിനാൽ, യഥാർത്ഥ URL ക്ലയന്റിന്റെ വെബ് ബ്രൗസർ വിൻഡോയിൽ തന്നെ നിലനിൽക്കും. അടിസ്ഥാനപരമായി, ബ്രൗസറിന് അത് യഥാർത്ഥത്തിൽ മറ്റൊരു പേജാണ് പ്രദർശിപ്പിക്കുന്നതെന്ന് അറിയാൻ ഒരു മാർഗവുമില്ല. ക്ലയന്റ് പേജ് പുതുക്കുകയോ ബുക്ക്‌മാർക്ക് ചെയ്യുകയോ ചെയ്യുമ്പോൾ ഈ പരിമിതി പ്രശ്നങ്ങൾ സൃഷ്ടിക്കുന്നു.

കൂടാതെ, Server.Transfer() രീതിക്ക് ASP.NET ഇതര പേജിലേക്കോ മറ്റൊരു വെബ് ആപ്ലിക്കേഷനിലോ വെബ്‌സൈറ്റിലോ ഉള്ള ഒരു വെബ് പേജിലേക്കോ നിയന്ത്രണം കൈമാറാൻ കഴിയില്ല.

ഒരു പേജിൽ നിന്ന് മറ്റൊന്നിലേക്ക് മാറുന്നതിന്, മറ്റൊരു സാങ്കേതികത ലഭ്യമാണ് - ക്രോസ്-പേജ് പോസ്റ്റിംഗ്. മറ്റൊരു പേജിലേക്ക് സ്വയം അയയ്‌ക്കുന്ന ഒരു പേജ് സൃഷ്‌ടിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു, എല്ലാ വ്യൂ സ്റ്റേറ്റ് വിവരങ്ങളും ഏതെങ്കിലും നിയന്ത്രണങ്ങളുടെ ഉള്ളടക്കവും കൈമാറുന്നത് സാധ്യമാക്കുന്നു.

ASP.NET 4-ൽ, HttpResponse ക്ലാസ് ഉപയോക്താവിനെ റീഡയറക്‌ടുചെയ്യുന്നതിനുള്ള മറ്റൊരു രീതി അവതരിപ്പിച്ചു - RedirectPermanent() . റീഡയറക്‌ട്(), അതായത്, ഈ രീതി അതേ കാര്യം ചെയ്യുന്നു. ഒരു പുതിയ പേജ് അഭ്യർത്ഥിക്കണമെന്ന് സൂചിപ്പിക്കുന്ന ഒരു റീഡയറക്‌ട് സന്ദേശം ബ്രൗസറിലേക്ക് അയയ്‌ക്കുന്നു. എന്നിരുന്നാലും, HTTP സ്റ്റാറ്റസ് കോഡ് 302 (താൽക്കാലിക റീഡയറക്‌ട്) എന്നതിനുപകരം, ഇത് 301 കോഡ് ഉപയോഗിക്കുന്നു (ഇത് സ്ഥിരമായ റീഡയറക്‌ടിനെ സൂചിപ്പിക്കുന്നു). വെബ് ബ്രൗസറുകൾക്ക് ഈ വ്യത്യാസം പ്രശ്നമല്ല, പക്ഷേ സെർച്ച് എഞ്ചിനുകൾക്ക് ഇത് വളരെ പ്രധാനമാണ്. എപ്പോൾ തിരയൽ റോബോട്ട്വെബ്‌സൈറ്റ് പര്യവേക്ഷണം ചെയ്യുകയും 301 സ്റ്റാറ്റസ് കോഡ് ലഭിക്കുകയും ചെയ്യുന്നു, അത് അതിന്റെ ഡയറക്ടറി അപ്‌ഡേറ്റ് ചെയ്യുന്നു തിരയല് യന്ത്രം, പുതിയ URL നെ കുറിച്ചുള്ള വിവരങ്ങൾ കൊണ്ട് പൂരിപ്പിക്കുന്നു.

ഇതിനർത്ഥം റീഡയറക്‌ട് () ഉം റീഡയറക്‌ട് പെർമനന്റ് () രീതികളും ഉപയോഗിക്കണം എന്നാണ് വ്യത്യസ്ത വഴികൾ. ആപ്ലിക്കേഷനിൽ സാധാരണ നാവിഗേഷനും ഫ്ലോ നിയന്ത്രണവും നൽകുന്നതിന് റീഡയറക്‌ട്() രീതി ഉപയോഗിക്കണം (ഉദാഹരണത്തിന്, ഉപയോക്താവ് ഏതെങ്കിലും തരത്തിലുള്ള സ്ഥിരീകരണ പ്രക്രിയയിലൂടെ കടന്നുപോകുമ്പോൾ), പഴയ URL അഭ്യർത്ഥിക്കുമ്പോൾ RedirectPermanent() രീതി ഉപയോഗിക്കണം. മുമ്പ് പിന്തുണച്ചെങ്കിലും ഇനി ഉപയോഗിക്കില്ല.

സാധാരണഗതിയിൽ, റീഡയറക്‌ട്() രീതിയെ വെബ് ഫോമിന്റെ കോഡിൽ എവിടെയെങ്കിലും വിളിക്കും, അതേസമയം RedirectPermanent() രീതി ആപ്ലിക്കേഷൻ കോഡിൽ വിളിക്കും, കൂടുതൽ വ്യക്തമായി ഗ്ലോബൽ.ആസാക്സ് ഫയലിനുള്ളിലെ Application_BeginRequest() രീതിയിൽ. പഴയ പേജുകൾക്കായി അപൂർണ്ണലേഖനങ്ങൾ സൂക്ഷിക്കാതെ തന്നെ നിങ്ങളുടെ എല്ലാ സ്ഥിരമായ റീഡയറക്‌ടുകളും ഒരിടത്ത് നിയന്ത്രിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കും. താഴെ ഒരു ഉദാഹരണം:

സംരക്ഷിത ശൂന്യമായ Application_BeginRequest(object sender, EventArgs e) ( // വെബ് ആപ്ലിക്കേഷനിൽ ഇനിമുതൽ about.aspx പേജ് അടങ്ങിയിരിക്കില്ല എങ്കിൽ (Reguest.FilePath == "/about.aspx") (Response.RedirectPermanent("/about/about-Us . aspx"); ) // (കൂടുതൽ റീഡയറക്‌ടുകൾ ഇവിടെ ചേർക്കുക.) )

സെർവർ ഒബ്ജക്റ്റ്

സെർവർ ഒബ്‌ജക്റ്റ് System.Web.HttpServerUtility ക്ലാസിന്റെ ഒരു ഉദാഹരണമാണ് കൂടാതെ പട്ടികയിൽ ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന വിവിധ സഹായ രീതികളും ഗുണങ്ങളും നൽകുന്നു:

HttpServerUtility ക്ലാസിലെ അംഗങ്ങൾ രീതി അല്ലെങ്കിൽ സ്വത്ത് വിവരണം
മെഷീന്റെ പേര് പേജ് പ്രവർത്തിക്കുന്ന കമ്പ്യൂട്ടറിന്റെ പേര് പ്രതിനിധീകരിക്കുന്ന ഒരു പ്രോപ്പർട്ടി. നെറ്റ്‌വർക്കിലെ ബാക്കിയുള്ളവരെ തിരിച്ചറിയാൻ കമ്പ്യൂട്ടർ ഉപയോഗിക്കുന്ന വെബ് സെർവറിന്റെ പേരാണിത്
GetLastError() ഏറ്റവും പുതിയ പിശകിനുള്ള ഒഴിവാക്കൽ ഒബ്‌ജക്‌റ്റ് വീണ്ടെടുക്കുന്നു (അല്ലെങ്കിൽ ഒരു റഫറൻസ് നിലവിലില്ലെങ്കിൽ). നിലവിലെ അഭ്യർത്ഥന പ്രോസസ്സ് ചെയ്യുമ്പോൾ ഈ പിശക് സംഭവിച്ചിരിക്കണം, അത് കൈകാര്യം ചെയ്തില്ല. പരാജയ സാഹചര്യങ്ങൾ പരിശോധിക്കുന്ന ഒരു ആപ്ലിക്കേഷൻ ഇവന്റ് ഹാൻഡ്‌ലറിലാണ് മിക്കപ്പോഴും ഉപയോഗിക്കുന്നത്
HtmlEncode() കൂടാതെ HtmlDecode() സാധുവായ ഒരു സ്ട്രിംഗ് ഉപയോഗിച്ച് ഒരു സാധാരണ സ്ട്രിംഗ് മാറ്റിസ്ഥാപിക്കുന്നു HTML പ്രതീകങ്ങൾ(തിരിച്ചും)
UrlEncode() ഉം UrlDecode() സാധുതയുള്ള URL പ്രതീകങ്ങളുടെ ഒരു സ്ട്രിംഗ് ഉപയോഗിച്ച് ഒരു സാധാരണ സ്ട്രിംഗ് മാറ്റിസ്ഥാപിക്കുന്നു (തിരിച്ചും)
മാപ്പ്പാത്ത്() വെബ് സെർവറിലെ ഒരു പ്രത്യേക വെർച്വൽ ഫയൽ പാത്തിന് അനുയോജ്യമായ ഫിസിക്കൽ ഫയൽ പാത്ത് നൽകുന്നു. MapPath()-നെ വിളിക്കുന്നത് / ഉപയോഗിച്ച് ഫിസിക്കൽ പാത്ത് വെബ് ആപ്ലിക്കേഷന്റെ റൂട്ട് ഡയറക്‌ടറിയിലേക്ക് നൽകുന്നു. ഒരു വെബ്‌സൈറ്റിന്റെ റൂട്ട് ഡയറക്‌ടറിയെ പ്രതിനിധീകരിക്കുന്ന ഒരു ടിൽഡ് പ്രതീകം (~) അടങ്ങിയ പാത്തുകളും പിന്തുണയ്ക്കുന്നു (ഉദാഹരണത്തിന്, ~/homepage.aspx)
കൈമാറ്റം() നിലവിലെ ആപ്ലിക്കേഷനിലെ മറ്റൊരു വെബ് പേജിലേക്ക് നിർവ്വഹണം കൈമാറുന്നു. ഈ രീതി Response.Redirect() എന്നതിന് സമാനമാണ്, എന്നാൽ വേഗതയേറിയതാണ്. മറ്റൊരു വെബ് സെർവറിൽ സ്ഥിതി ചെയ്യുന്ന ഒരു സൈറ്റിലേക്കോ ASP.NET ഇതര പേജിലേക്കോ (HTML അല്ലെങ്കിൽ ASP പോലുള്ളവ) ഉപയോക്താവിനെ നീക്കാൻ ഉപയോഗിക്കാനാവില്ല.

ആപ്ലിക്കേഷനിലെ മറ്റൊരു പേജിലേക്ക് ഉപയോക്താവിനെ നീക്കുന്നതിനുള്ള ഏറ്റവും വേഗതയേറിയ മാർഗമാണ് ട്രാൻസ്ഫർ() രീതി. ഈ രീതി ഉപയോഗിക്കുമ്പോൾ, ഒരു പൂർണ്ണമായ അയയ്ക്കൽ ചക്രം സംഭവിക്കുന്നില്ല. പകരം, ASP.NET എഞ്ചിൻ ഒരു പുതിയ പേജ് ലോഡ് ചെയ്യുകയും അത് പ്രോസസ്സ് ചെയ്യാൻ തുടങ്ങുകയും ചെയ്യുന്നു. തൽഫലമായി, ക്ലയന്റിന്റെ ബ്രൗസറിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്ന URL മാറില്ല.

സെർവർ ഒബ്‌ജക്‌റ്റിന്റെ മറ്റൊരു ഉപയോഗപ്രദമായ രീതിയാണ് MapPath(). ഉദാഹരണത്തിന്, നിലവിലെ വെർച്വൽ ഡയറക്‌ടറിയിൽ നിന്ന് info.txt എന്ന പേരിൽ ഒരു ഫയൽ ലോഡ് ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് കരുതുക. പാത്ത് ഹാർഡ്-കോഡ് ചെയ്യുന്നതിനുപകരം, നിങ്ങൾക്ക് Server.MapPath() രീതി ഉപയോഗിക്കുകയും അത് പരിവർത്തനം ചെയ്യാൻ ഉപയോഗിക്കുകയും ചെയ്യാം. ആപേക്ഷിക പാതപൂർണ്ണ ഭൗതിക പാതയിൽ നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനിലേക്ക്.

HTML, URL എൻകോഡിംഗ്

പരിവർത്തനം ചെയ്യുന്ന രീതികളും സെർവർ ക്ലാസിൽ അടങ്ങിയിരിക്കുന്നു സാധാരണ ചരടുകൾഒരു URL-ന്റെ ഭാഗമായി സുരക്ഷിതമായി ഉപയോഗിക്കാവുന്ന അല്ലെങ്കിൽ ഒരു വെബ് പേജിൽ പ്രദർശിപ്പിക്കാൻ കഴിയുന്ന ഒരു പ്രാതിനിധ്യത്തിലേക്ക്. ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു വെബ് പേജിൽ ഇനിപ്പറയുന്ന വാചകം പ്രദർശിപ്പിക്കാൻ പോകുകയാണെന്ന് പറയാം:

ടാഗ് ചെയ്യുക

ഒരു ഖണ്ഡിക സൂചിപ്പിക്കാൻ ഉപയോഗിക്കുന്നു.

നിങ്ങൾ ഈ വിവരങ്ങൾ ഒരു പേജിൽ എഴുതാനോ ഒരു നിയന്ത്രണത്തിൽ സ്ഥാപിക്കാനോ ശ്രമിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്നവ ലഭിക്കും:

ഒരു ഖണ്ഡിക തിരിച്ചറിയാൻ ഒരു ടാഗ് ഉപയോഗിക്കുന്നു.

വാചകം

അത് ദൃശ്യമാകില്ല, ബ്രൗസർ അതിനെ ഒരു ഖണ്ഡിക ഉൾപ്പെടെ വ്യാഖ്യാനിക്കുന്നു. ഈ സ്വയമേവയുള്ള പെരുമാറ്റം ഒഴിവാക്കാൻ, നിങ്ങൾ പ്രശ്നസാധ്യതയുള്ള മൂല്യങ്ങളെ പ്രത്യേക HTML തുല്യതകളിലേക്ക് പരിവർത്തനം ചെയ്യേണ്ടതുണ്ട്. ഉദാഹരണത്തിന്,< превратится в < в окончательной HTML-странице, а браузер отобразит этот символ как