Hướng dẫn write javascript in razor view - viết javascript trong chế độ xem dao cạo

Tôi khá bối rối với cách trộn dao cạo và js. Đây là chức năng hiện tại mà tôi bị mắc kẹt với:



        var data = [];

        @foreach [var r in Model.rows]
        {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }

Nếu tôi có thể khai báo mã C# với



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
0 và mọi thứ khác là mã JS - đây sẽ là những gì tôi đang có sau:



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }

Phương pháp tốt nhất để đạt được điều này là gì?

Hỏi ngày 10 tháng 4 năm 2011 lúc 21:45Apr 10, 2011 at 21:45

Kyle Brandtkyle BrandtKyle Brandt

25.7K34 Huy hiệu vàng122 Huy hiệu bạc162 Huy hiệu đồng34 gold badges122 silver badges162 bronze badges

7

Sử dụng



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
1:



   var data = [];

   @foreach [var r in Model.rows]
   {
      
            data.push[[ @r.UnixTime * 1000, @r.Value ]];
      
   }

Đã trả lời ngày 10 tháng 4 năm 2011 lúc 21:54Apr 10, 2011 at 21:54

6

Bên trong một khối mã [ví dụ:



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
2], bạn cần đánh dấu đánh dấu [hoặc, trong trường hợp này là JavaScript] với thẻ


        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
3 hoặc


        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
1.

Bên trong bối cảnh đánh dấu, bạn cần bao quanh mã với các khối mã [



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
5 hoặc


        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
6, ...]

Đã trả lời ngày 10 tháng 4 năm 2011 lúc 21:54Apr 10, 2011 at 21:54

Bên trong một khối mã [ví dụ:



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
2], bạn cần đánh dấu đánh dấu [hoặc, trong trường hợp này là JavaScript] với thẻ


        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
3 hoặc


        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
1.SLaks

Bên trong bối cảnh đánh dấu, bạn cần bao quanh mã với các khối mã [



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
5 hoặc


        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
6, ...]174 gold badges1879 silver badges1947 bronze badges

3

Slaksslaks



   var data = [];

   @foreach [var r in Model.rows]
   {
       @:data.push[[ @r.UnixTime * 1000, @r.Value ]];
   }

850K174 Huy hiệu vàng1879 Huy hiệu bạc1947 Huy hiệu đồng@:

Bạn cũng chỉ có thể sử dụngMay 23, 2014 at 9:48

Ghi chú @:


    var data = @Json.Encode[Model]; // !!!! export data !!!!

    for[var prop in data]{
      console.log[ prop + " "+ data[prop]];
    }

Đã trả lời ngày 23 tháng 5 năm 2014 lúc 9:48

@Html.Raw[Json.Encode[Model]];

Không bao giờ trộn lẫn nhiều ngôn ngữ hơn.Apr 29, 2016 at 13:49

Trong trường hợp có vấn đề, bạn cũng có thể thửMertuarez

Đã trả lời ngày 29 tháng 4 năm 2016 lúc 13:497 silver badges24 bronze badges

4

Mertuarezmertuarez

8917 Huy hiệu bạc24 Huy hiệu đồng

Click me @section scripts { @Html.Partial["Scripts"] }

Scripts.cshtml


    var url = "@Url.Action["Index", "Home"]";

    $[document].ready[function[] {
        $["#btnLoad"].click[function[] {
            $.ajax[{
                type: "POST",
                url: url ,
                data: {someParameter: "some value"},
                contentType: "application/json; charset=utf-8",
                dataType: "json",

                success: function[msg] {
                    $["#Result"].text[msg.d];
                }
            }];
        }];
    }];

Một phương pháp không thông thường để tách JavaScript khỏi chế độ xem, nhưng vẫn sử dụng dao cạo trong đó là tạo một tệp



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
7 và đặt javascript/dao cạo hỗn hợp của bạn ở đó.Jan 21, 2020 at 7:19

Index.cshtmlJoel Wiklund

Đã trả lời ngày 21 tháng 1 năm 2020 lúc 7:192 gold badges14 silver badges22 bronze badges

1

Joel Wiklundjoel Wiklund

1.5132 huy hiệu vàng14 Huy hiệu bạc22 Huy hiệu đồng

Đây là cách của tôi để hack dao cạo và sử dụng JavaScript mà không làm suy yếu IntelliSense.

Rõ ràng là bạn nên sử dụng



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
1 nhưng với "nhanh chóng": niềng răng đôi trước đó.

Đây là những gì xảy ra nếu sử dụng một nẹp đơn:

Đây là những gì xảy ra nếu một vài niềng răng được sử dụng:

Bây giờ hằng số và biến đã được công nhận. Nó tốt hơn, nhưng không tốt! Vẫn còn biểu tượng "ít hơn" gây nhầm lẫn cho Intellisense khiến nó nghĩ rằng sau đây là tên của một thẻ. Dấu "ít hơn" được báo hiệu là lỗi và từ đây có các lỗi phân tích cú pháp là "console.log" cho thấy. Bạn cần thêm một cái gì đó làm im lặng Intellisense và không được trả lại trong mã JS cuối cùng tại thời điểm biên dịch.

Giải pháp: Sử dụng nhận xét này sau "ít hơn":



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
9

Đây là kết quả

Thật kỳ lạ khi thấy, nhưng nó hoạt động như bình thường.21 gold badges75 silver badges127 bronze badges

Dharman ♦Nov 10, 2021 at 11:34

28.3K21 Huy hiệu vàng75 Huy hiệu bạc127 Huy hiệu đồngtedebus

Đã trả lời ngày 10 tháng 11 năm 2021 lúc 11:3413 silver badges20 bronze badges

Tedebustedebus

88913 Huy hiệu bạc20 Huy hiệu Đồng

Bạn có thể sử dụng thẻ



        var data = [];

        @foreach [var r in Model.rows] {
                data.push[[ @r.UnixTime * 1000, @r.Value ]];
        }
1 cho cả mã CSHTML với JavaScript11 gold badges95 silver badges102 bronze badges

Suraj RaoNov 26, 2018 at 11:21

2

29.2k11 Huy hiệu vàng95 Huy hiệu bạc102 Huy hiệu đồng

function hideSurveyReminder[] {
       @Session["_isSurveyPassed"] = true;
    }

Đã trả lời ngày 26 tháng 11 năm 2018 lúc 11:21

function hideSurveyReminder[] {
       False = true;
    }

Bọc mã dao cạo của bạn trong @ {} Khi bên trong tập lệnh JS và nhận thức được chỉ sử dụng @ Đôi khi nó không hoạt động:

Điều này sẽ sản xuấtNov 10, 2015 at 2:34

Tôi có thể sử dụng JavaScript trong dao cạo không?

Dao cạo là a.Lắp ráp mạng và không chạy trên JavaScript hoặc trong trình duyệt.Nó có nghĩa là được thực hiện phía máy chủ.doesn't run on JavaScript or in a browser. It's meant to be executed server-side.

Bạn đặt JavaScript ở đâu trên trang dao cạo?

Một tệp JS cho thành phần chỉ mục được đặt trong thư mục trang [trang/index.razor.js] bên cạnh thành phần chỉ mục [trang/index.Razor].Pages folder [ Pages/Index. razor. js ] next to the Index component [ Pages/Index. razor ].

Làm cách nào để chạy JavaScript trên trang dao cạo?

Gọi hàm JavaScript từ chế độ xem dao cạo để bao gồm hàm JavaScript, nó đơn giản như bao gồm một thẻ và xác định hàm bên trong khối tập lệnh.Bây giờ, để gọi chức năng, thêm một sự kiện title trên siêu liên kết tên nhân viên và gọi chức năng.include a tag and define the function inside the script block. Now, to call the function, add an title event on the employee name hyperlink and call the function.

Làm thế nào bao gồm JavaScript trong CSHTML?

Chuyển đến lượt xem -> Chia sẻ -> _Layout.cshtml và thêm mã kết xuất.Đảm bảo đăng ký tệp JavaScript tùy chỉnh sau Gói jQuery vì chúng tôi sẽ sử dụng jQuery trong tệp JS của chúng tôi.Nếu không, chúng tôi sẽ gặp lỗi jQuery và cũng đăng ký điều này trước khi tập lệnh hiển thị. cshtml file and add the render code. Make sure to register the custom javascript file after the jquery bundle since we are going to use jquery inside our js file. Otherwise we will get a jquery error and also register this before the script RenderSection.

Bài Viết Liên Quan

Chủ Đề