[英]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.