লেআউট ব্যবহার করার সময় কীভাবে কোনও ভিউয়ের মধ্যে স্ক্রিপ্ট এসসিআর যুক্ত করতে হয়


102

আমি একটি জাভাস্ক্রিপ্ট রেফারেন্স অন্তর্ভুক্ত করতে চাই:

<script src="@Url.Content("~/Scripts/jqueryFoo.js")" type="text/javascript"></script>

যদি আমার একটি রেজার ভিউ থাকে তবে এটি বিন্যাসে যুক্ত না করে এটিকে অন্তর্ভুক্ত করার সঠিক উপায়টি কী (আমার কেবল এটি একটি নির্দিষ্ট নির্দিষ্ট দৃশ্যে প্রয়োজন, এটি সমস্তই নয়)

এসপেক্সে আমরা কন্টেন্ট প্লেস হোল্ডারদের ব্যবহার করতে পারি .. আমি পুরানো উদাহরণগুলি এমভিসি তে এসপেক্স ব্যবহার করে পেয়েছি তবে রেজার ভিউতে ..


4
আপনার দৃষ্টিতে কেবল স্ক্রিপ্ট ট্যাগ যুক্ত করুন।
jrummell

4
আমি কেবল আমার দৃষ্টিতে স্ক্রিপ্টটি যুক্ত করতে চাই, তবে যখন আমি তৈরি হওয়া পৃষ্ঠায় উত্সটি দেখি, এটি স্ক্রিপ্ট ট্যাগগুলিকে এইচটিএমএলের <body> ভিতরে <head> এর পরিবর্তে রাখে?
dferraro

আরও সাম্প্রতিক ব্রাউজারগুলির জন্য = "পাঠ্য / জাভাস্ক্রিপ্ট" টাইপ করার দরকার নেই
মার্ক শুলথিস

উত্তর:


175

নির্ভর করে কিভাবে আপনি এটা বাস্তবায়ন করতে (যদি সেখানে একটি নির্দিষ্ট অবস্থান আপনি স্ক্রিপ্ট চেয়েছিলেন) আপনাকে একটি বাস্তবায়ন হতে পারে চান @sectionমধ্যে আপনার _Layoutযা, দৃশ্য নিজেই থেকে অতিরিক্ত স্ক্রিপ্ট যোগ করার জন্য এখনও গঠন ধারনকারী করতে সক্ষম হবে। যেমন

_লয়আউট

<!DOCTYPE html>
<html>
  <head>
    <title>...</title>
    <script src="@Url.Content("~/Scripts/jquery.min.js")"></script>
    @RenderSection("Scripts",false/*required*/)
  </head>
  <body>
    @RenderBody()
  </body>
</html>

দেখুন

@model MyNamespace.ViewModels.WhateverViewModel
@section Scripts
{
  <script src="@Url.Content("~/Scripts/jqueryFoo.js")"></script>
}

নাহলে আপনার যা আছে তা ঠিক আছে। যদি আউটপুট ছিল এমন দৃশ্যের সাথে এটি "ইনলাইন" হয়ে উঠতে আপত্তি না দেখায়, আপনি <script>ঘোষণাকে ভিউয়ের মধ্যে রাখতে পারেন ।


4
বিটিডাব্লু, বিভাগগুলি মূলত আপনার বিষয়বস্তুধারীদের মধ্যে উল্লেখ করেছেন were ডিফল্ট এমভিসি ওয়েব প্রকল্প এবং কীভাবে তারা পৃষ্ঠায় একটি শিরোনাম রাখে তা দেখুন।
ব্র্যাড ক্রিস্টি

ধন্যবাদ এটিই আমি খুঁজছিলাম - তবে রেন্ডারসেকশন ছাড়া এটি করা কি সম্ভব? আপনি বলছেন যে 'আপনার কাছে যা আছে তা ঠিক আছে' - তবে আমার কাছে এখনও কিছু নেই ... আমি স্ক্রিপ্টের রেফারেন্সগুলি .cshtml এর শীর্ষে রাখার চেষ্টা করেছি, তবে ফলাফলটি রেফারেন্সগুলি <body> তে রয়েছে তবে তাদের উচিত মাথায় থাকুন
ডেফেরারো

4
@ ডিফেরারো: তারপরে আপনাকে RenderSection("Scripts")আপনার বিন্যাসে যুক্ত করতে হবে (যেমন আপনি কোনও স্থানধারক হিসাবে) এবং তারপরে @section Scripts {}ভিউয়ের মধ্যে একটি সংজ্ঞায়িত করতে হবে । কিছু সময়ে "মাস্টার" (_আলআউট) এ একটি পরিবর্তন আসন্ন। আপনি কেবলমাত্র একটি দর্শনের মধ্যে কিছু সংজ্ঞায়িত করতে এবং এটি " <head>আমার মধ্যে রাখুন" বলতে পারবেন না (যদি না আপনি কোনও স্ক্রিপ্ট যুক্ত করে এমন কোনও স্ক্রিপ্টে যেতে চান)
ব্র্যাড ক্রিস্টি

4
+1 এছাড়াও @dferraro আরও ভাল বিষয় হ'ল <<<< এর আগে jQuery এবং রেন্ডারসেকশনের রেফারেন্সগুলি রাখা উচিত এবং একেবারে মাথায় রাখা উচিত নয়। পুরানো তবে প্রাসঙ্গিক পাঠ্য: বিকাশকারী.ইহু.
com

4
যদি আপনার স্ক্রিপ্টটি Scriptsফোল্ডারে না থাকে তবে আপনার এটিতে অ্যাক্সেস সক্ষম করার দরকারও
হোমার

12

আপনি যদি রেজার ভিউ ইঞ্জিন ব্যবহার করছেন তবে _Layout.cshtml ফাইলটি সম্পাদনা করুন। পাদচরণে উপস্থিত @ স্ক্রিপ্টগুলি রেন্ডার করুন ("~ / বান্ডিল / জ্যাকেই") শিরোনাম বিভাগে যান এবং জাভাস্ক্রিপ্ট / jquery কোডটি আপনার ইচ্ছে মতো লিখুন:

@Scripts.Render("~/bundles/jquery")
<script type="text/javascript">
    $(document).ready(function () {
        var divLength = $('div').length;
        alert(divLength);
    });
</script>

1

নীচের মত ক্লায়েন্টের পাশের বৈধতাগুলি করার সময় আমরা কীভাবে এসপ.net ব্যবহার করি তার মতো স্ক্রিপ্ট ট্যাগগুলি যুক্ত করতে পারেন।

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<script type="text/javascript" src="~/Scripts/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
    $(function () {
       //Your code
    });
</script>

আরও সাম্প্রতিক ব্রাউজারগুলির type="text/javascript"জন্য প্রয়োজন নেই
মার্ক শুলথিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.