আমি কীভাবে রেজার ভিউ পৃষ্ঠায় একটি নেমস্পেস আমদানি করব?


উত্তর:


852

শেষ পর্যন্ত উত্তর খুঁজে পেয়েছি।

@using MyNamespace

ভিবি.নেটের জন্য:

@Imports Mynamespace

আপনি যদি অ্যাপ্লিকেশন জুড়ে একটি নেমস্পেস অন্তর্ভুক্ত করতে চান তবে @ রাভি অ্যামিরির উত্তরটি একবার দেখুন ।


4
এছাড়াও: তারা কোড ব্লকে যেতে পারে না। (আপনি একটি রানটাইম ত্রুটি পাবেন)
ড্যান এস্পারজা

5
এছাড়াও আপনার সেমিকোলনের দরকার নেই।
RPM1984

5
এটি কেবল খারাপ অনুশীলনের সময়কাল। দয়া করে এটি আপনার ক্ষুর পৃষ্ঠাগুলির শীর্ষে যুক্ত করবেন না। এটি অগোছালো ইত্যাদি ... সঠিক উপায় হ'ল - জাভাদ_আমি যেমনটি দেখিয়েছে ঠিক তেমন দৃশ্য - ওয়েবকনফিগ যুক্ত করা।
টম স্টিকেল

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

4
আমি অবাক হয়েছি ইন্টেলিসেন্স সাধারণ সি # পৃষ্ঠায় একইভাবে ব্যবহারের বিবৃতি যোগ করার ইঙ্গিত দেয় না।
ট্রায়ঙ্কো

397

প্রথম উপায় হ'ল ফাইলগুলিতে @usingস্টেটমেন্ট ব্যবহার করুন .cshtml, যা কেবলমাত্র বর্তমান ফাইলটিতে একটি নেমস্পেস আমদানি করে এবং দ্বিতীয়টি:

Viewsআপনার প্রকল্পের ডিরেক্টরিতে "" ওয়েবকনফিগ "ফাইলটিতে (লক্ষ্য করুন এটি প্রকল্পের মূলের মূল ওয়েবকনফিগ নয় ) , এই বিভাগটি সন্ধান করুন:

<system.web.webPages.razor>
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      .
      .
      <!-- etc -->
    </namespaces>
  </pages>
</system.web.webPages.razor>

আপনি নিজের কাস্টম নেমস্পেসটি এটি যুক্ত করতে পারেন:

<add namespace="My.Custom" />

যা সমস্ত .cshtml (এবং / অথবা .vbhtml) ফাইলের সাথে নেমস্পেস যুক্ত করবে; এছাড়াও আপনি এখান থেকে দর্শন উত্তরাধিকার পরিবর্তন করতে পারেন:

<pages pageBaseType="My.Custom.MyWebViewPage">

শুভেচ্ছা।


আপডেট:Nick Silberstein ক্ষেত্রগুলি সম্পর্কে তাঁর অনুস্মারকে @ কে ধন্যবাদ ! সে বলেছিল:

আপনি একটি মধ্যে কাজ করে যাচ্ছি তাহলে এলাকায় , আপনি যোগ করতে হবে namespaceমধ্যে Web.configঅধীনে /Areas/<AreaName>/Views/বদলে /Views/


10
@ ভিটোরটোলা: কোন ওয়েবকনফিগ? ভিউ ফোল্ডারে ওয়েবকনফিগ ফাইল, মূল ফোল্ডারে মূল ওয়েবকনফিগ নয়। ঠিক আছে?
রেভি অ্যামিরি

9
আমি আশা করি কাউকে কয়েক মিনিটের চুল টেনে আনতে কয়েক মিনিট বাঁচাতে চাই এবং বলতে চাই যে আপনি যদি কোনও অঞ্চলে কাজ করছেন তবে আপনাকে অবশ্যই / অঞ্চল / <আরিয়া নাম> ভিউ / এর পরিবর্তে ওয়েবকনফাইগের মধ্যে নামস্থান যুক্ত করতে হবে / দেখেছে /।
নিক সিলবারস্টাইন

11
@ ম্যাথিজ ওয়েজসেলস এর কোনও ভিএস পুনরায় চালু করার দরকার নেই কেবলমাত্র প্রকল্পটি তৈরি করুন এবং এটি কার্যকর হবে। কমপক্ষে আমি সর্বদা এটি করি। যদি কোনও দৃশ্য খোলা থাকে, আপনাকে বিল্ড করার আগে সেই দৃশ্যটি বন্ধ করতে হবে এবং নির্মাণের পরে এটি আবার খুলতে হবে।
রেভি অ্যামিরি

2
@ জাভাদ_আমি, আহা, আমি পুনর্নির্মাণ করেছি, তবে দৃশ্যটি বন্ধ করি নি didn't
ম্যাথিজ ওয়েজেলস

1
হ্যাঁ, এটি সঠিক উপায়।
অপার

30

লাইব্রেরির জন্য

@using MyNamespace

মডেল জন্য

@model MyModel

1
সেখানে কেন নেই; শেষে?
ফ্রেনকিবি

2
@ ফ্রেঙ্কিবি কারণ এটি সি # কোড নয়, এটি রেজার কোড। usingএকটি .cs ফাইলের শুরুতে একটি C # এর কম্পাইলার শব্দ হয়। @usingএকটি .cshtml ফাইলের শুরুতে রাজো টেমপ্লেট ইঞ্জিন একটি ইঙ্গিত হয়।
চিহ্নিত করুন

27

এএসপি.নেট এমভিসি 3 প্রিভিউ 1 এ আপনি গ্লোবাল.এক্সএক্স.সি.এস এ এই কোডটি সহ আপনার সমস্ত রেজার ভিউগুলিতে একটি নেমস্পেস আমদানি করতে পারেন

Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");

আমি আরটিএম-তে আশা করি এটি ওয়েবকনফিগ বিভাগের মাধ্যমে সম্পন্ন হবে।


6
আরটিএম-এ একটি ওয়েব কোডফিগ বিভাগ থাকবে, তবে আমরা এটি করার জন্য একটি এপিআইও সরবরাহ করতে চেয়েছিলাম কারণ অনেক ব্যবহারকারী কনফিগারেশন থেকে দূরে সরে যেতে শুরু করেছেন। সুতরাং আমরা আপনার জন্য উভয় বিকল্প উপলব্ধ!
অ্যান্ড্রু স্ট্যান্টন-নার্স 18

6
এএসপি.নেট এমভিসি 3 বিটা হিসাবে এই পদ্ধতিটি আর কাজ করে না। এখানে স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 3875207/বর্ণিত হিসাবে একটি নতুন ওয়েবকনফিগ বিভাগ রয়েছে । সমস্ত দর্শনে একটি বিশ্বব্যাপী নেমস্পেস আমদানির জন্য অ্যাডগ্লোবাল ইমপোর্ট পদ্ধতিটি এই শ্রেণি সিস্টেমে স্থানান্তরিত করা হয়েছে e ওয়েবে.ওয়েবপ্যাজেস.রাজর.ওয়েবপ্যাজস রেজারহোস্ট
জার্মানি

16

আমি এই http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx খুঁজে পেয়েছি যা ব্যাখ্যা করে যে কীভাবে আপনার সমস্ত রেজার পৃষ্ঠাগুলিতে একটি কাস্টম নেমস্পেস যুক্ত করতে হয়।

মূলত আপনি এটি করতে পারেন

using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
   public static void InitializeApplication()
   {
       CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
   }
}

এবং আপনার এসেম্বলিআইএনফো-সি-তে নিম্নলিখিত কোডটি রেখে দিন

[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]

মেথড ইনিশিয়াল অ্যাপ্লিকেশনটি গ্লোবাল.এক্সে অ্যাপ্লিকেশন_স্টার্টের আগে কার্যকর করা হবে


4
এটি আসলে একটি বরং ভাল উত্তর, তবে এর অবস্থানটি Microsoft.WebPages.Compilation.AddGlobalImportপরিবর্তিত হয়েছিল System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
jahu

2
এই পদ্ধতিটি ব্যবহারের বড় সুবিধাটি এই জায়গা থেকে আসে যে নামমাত্র স্থানটি কেবলমাত্র এক জায়গায় ঘোষিত হওয়ার সময় সমস্ত ক্ষেত্রে (অঞ্চলগুলির মধ্যে অন্তর্ভুক্ত) ব্যবহারযোগ্য হবে।
jahu

14

একটি বিষয় যে আপনি অবশ্যই জানেন যে যখন আপনি আমদানি একটি নামস্থান মারফত web.configমধ্যে Viewsফোল্ডার যে namespaceআমদানি করা হয় জাস্ট যে দেখা ফোল্ডারের । এর অর্থ যদি আপনি namespaceকোনও অঞ্চল ভিউগুলিতে একটি আমদানি করতে চান , আপনাকে অবশ্যই সেই অঞ্চলটির ফোল্ডারে অবস্থিত namespaceসেই অঞ্চলের web.configফাইলটিতে এটি আমদানি করতে হবে Views;


11

নেমস্পেস এবং লাইব্রেরির জন্য

@using NameSpace_Name

মডেল জন্য

@model Application_Name.Models.Model_Name 

রেজার পৃষ্ঠায় তালিকাটি ইট্রেট করার জন্য (তালিকার আইটেমগুলিতে অ্যাক্সেসের জন্য আপনাকে ফোরচ লুপ ব্যবহার করতে হবে)

@model List<Application_Name.Models.Model_Name>

@foreach (var item in Model)
   {  
          <tr>
                <td>@item.srno</td>
                <td>@item.name</td>
         </tr>  
   }


3

"মাইনেমস্পেস ব্যবহার করে" এমভিসি 3 আরটিএম-এ কাজ করে। আশাকরি এটা সাহায্য করবে.


2

আমি মনে করি রেজার ভিউতে অর্ডার নেমস্পেসের জন্য, আপনাকে কেবল নীচের উপায়ে যুক্ত করতে হবে:

@using XX.YY.ZZ

0

আপনার প্রয়োজনের উপর নির্ভর করে আপনি নিম্নলিখিত পদ্ধতির একটি ব্যবহার করতে পারেন:

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