簡體   English   中英

C#中的JavaScript

[英]JavaScript inside C#

<script>
 ...

   var Klasa = calEvent.ClassID;
   @{
     var NameOfClass = Model.FirstOrDefault(xx => xx.ClassID == @:Klasa).Nazwa_Klasy;
   }

  $description.append($('<p/>').html('<b>Klasa:</b>' + @NameOfClass

 ...
</script>

如何正確將JS與C#混合使用?

我得到的信息是“在聲明之前不能使用局部變量“ NameOfClass””,

但是當我之前再次使用字符串值聲明變量時,我得到“一個開頭“(”缺少相應的結尾“)”',然后我不確定該怎么做,因為一切看起來都很好。

我的主要目標是我想從ClassID等於calEvent.ClassID的Model(Nazwa_Klasy)中獲取單個數據。 也許我也應該改變我的表情?

感謝您的回答!

首先,讓我們澄清一些事情:

這將是var Klasa = calEvent.ClassID; 發生在客戶端。 意味着,某些操作將導致瀏覽器中的calEvent 如果 ,則使后續操作毫無意義。

Model.FirstOrDefault(xx => xx.ClassID == @:Klasa)

與在服務器(運行該服務器的服務器)上一樣, klasa不可用。 因此,最好的選擇是吐出Model ,它似乎是客戶端的一個數組,然后對其進行過濾。 不知道我是否有意義,但請嘗試以下操作:

<script>
    ...
    //Array of object to look into at client side
    var modelArray=@Html.Raw(JsonConvert.SerializeObject(Model));
    var Klasa = calEvent.ClassID;

    var NameOfClass=null;
    $.each(modelArray,function(){
        if($(this).ClassID===klasa){
            NameOfClass = $(this).Nazwa_Klasy;
            return;
        }
    });

    //You may want to test if `NameOfClass` has a value.
    $description.append($('<p/>').html('<b>Klasa:</b>' + NameOfClass
 ...
</script>

另外,正如評論中指出的, @:klasa是錯誤的。 您不需要:在那里。

@TheVillageIdiot您的思維方式不錯,但是代碼沒有按我想要的正常工作。 因此,我將其更改為

     var modelArray = @Html.Raw(JsonConvert.SerializeObject(Model));
                var Klasa = calEvent.ClassID;


                for (var i = 0; i < modelArray.length; i++) {
                    var obj = modelArray[i];
                    if (obj.ClassID === Klasa) {
                        NameOfClass = obj.Nazwa_Klasy.trim();
                    }
                }


                $description.append($('<p/>').html('<b>Klasa: </b>' + NameOfClass));

現在一切都很好。

非常感謝! ;-)

這可能不是您問題的快速答案,但是本周有一個現場演示解決了在ASP.NET MVC應用程序中使用JavaScript的問題。 是10月26日,如果您不能參加,我確定以后還會有錄音。 這是注冊頁面。 -您也可以在此提問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM