簡體   English   中英

在 JavaScript function 被調用時執行 C# 代碼

[英]Execute C# code inside JavaScript function when it's called

每當我運行 JavaScript function 時,我都想執行一段 C# 代碼,但它的行為似乎不像我想要的那樣,這是一個例子:
假設我有一個變量property int Counter {get; set; } property int Counter {get; set; } property int Counter {get; set; }中,我想在每次運行 JavaScript function 時遞增:

<script type="text/javascript">

function MyFunction(){

    //Do some stuff
    @{Model.Counter++;}

}

</script>

真正發生的是,當頁面加載時@{Model.Counter++;}正在執行,無論是否從 function 調用。
每當我再次運行 function 時,它都會完全忽略它。
這意味着這段代碼@{Model.Counter++;}在頁面加載時執行一次,並且不再執行。
每次運行 function 時,如何解決並使其執行?

我不認為你想要什么是可能的(也許是 Blazor? - 但那是 WebAssembly)。 相反,您可以將新的 javascript 變量分配給您的 model 屬性。 例如:

<script type="text/javascript">

function MyFunction(){

    //Do some stuff
    let counter = @{Model.Counter};
    counter++;

    // Do some stuff with counter

}
// When you are done, post the counter back if needed on server side

</script>

您可以使用 ActiveX 控件來執行編譯程序。 但您應該知道您的 html 代碼僅適用於 IE。

您必須在視圖表單內的某處為 model.counter 創建一個隱藏字段

<input type="hidden" id="modelCounter" asp-for="Counter" value="@Model.Counter" />

在此之后,您可以使用 javascript 更改計數器

function MyFunction(){

    //Do some stuff

var counter=$("#modelCounter").val();
counter++;
   $("#modelCounter").val(counter);

}

嘗試這個

     @{
   var a=Model.Counter;
     }

在腳本之外執行此操作

並在 function 或腳本中執行

@a++;

或者

 var c = @a;
    c++;

希望它有效

暫無
暫無

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

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