簡體   English   中英

如何在 Blazor Web 程序集中將 c# 變量傳遞給 javascript

[英]How to Pass a c# variable to javascript in Blazor Web Assembly

我正在使用 Blazor Web 程序集,第 3 方組件不支持 @onitnput、@bind-value:event="oninput"。 為了嘗試解決這個問題,我嘗試使用 JS 來觸發 c# function。(我還有其他的東西在輸入時觸發“onchange”,所以當你看我的例子時,只要把它想象成 oninput,這是有效的).

主要問題:我需要將對頁面的引用傳遞給 onchange 調用的方法,這樣我就可以從 JS 調用 c# 方法,但我無法讓它傳遞參數。 這是我的標記

<RadzenHtmlEditor @bind-Value=@SurveyScriptNode.Script onchange="callCSharpMethodNoParams(@DotNetObjectReference.Create(this))" style="height: 500px; margin-bottom: 1rem; opacity: 1;" UploadUrl="upload/image" Paste=@OnPaste Execute=@OnExecute id="scriptBuilder_surveyScriptNode_ScriptEditor">

我也嘗試了這里的建議,但也無法正常工作

<RadzenHtmlEditor @bind-Value=@SurveyScriptNode.Script onchange="callCSharpMethodNoParams(<%=DotNetObjectReference.Create(this)%>)" style="height: 500px; margin-bottom: 1rem; opacity: 1;" UploadUrl="upload/image" Paste=@OnPaste Execute=@OnExecute id="scriptBuilder_surveyScriptNode_ScriptEditor">

Blazor有沒有辦法做到這一點?

感謝您的時間。

作為解決方法,我正在這樣做:

  • 隱藏復選框

  • 在所需的控件上設置一個 js oninput 方法,這將調用一個 js function 將隱藏的復選框設置為 true

  • 由於隱藏復選框在JS更新值時不能@bind,調用StateHasChanged()時也不會更新值,所以需要實現一個計時器,利用JS interop調用一個js function返回隱藏復選框的值框到您的 c# 代碼。

  • 將c#變量的值設置為上一步的返回值

  • 在 c# 中創建另一個方法,該方法使用 JS Interop 調用您在輸入中使用的 js function,在 c# 變量的設置器中調用此方法,但確保僅在頁面已初始化時執行此操作。

暫無
暫無

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

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