<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 [email protected](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是错误的。您在那里不需要:

关于javascript - C#中的JavaScript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46899172/

10-09 15:10