亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 ASP.NET Core 中從 Javascript 調用 C# 方法?

如何在 ASP.NET Core 中從 Javascript 調用 C# 方法?

C#
楊__羊羊 2023-05-14 16:51:53
我的Index.cshtml文件中有一個用戶名文本框,我想在用戶更改文本框內的文本時檢查我們的 Active Directory 中的匹配項,然后可能將其顯示在 中DropDownList,以便用戶可以從中選擇。所以我在文本框的事件上調用了一個 JavaScript 函數oninput,現在的問題是如何從該 JS 函數調用我的 C#FindUser()方法Index.cshtml.cs?我已經嘗試了很多我讀過的東西,ajax調用不起作用,添加[WebMethod]和使方法靜態不起作用,互聯網上的大多數都是在我沒有使用的 MVC 上。中的文本框Index.cshtml:<input type="text" class="form-control" oninput="findUsers()" />JavaScript 函數:function findUsers() {  $.ajax({    url: 'Index\FindUser',    success: function (data) {      alert(data);    },    error: function (error) {      alert("Error: " + error);    }  })}引導瀏覽器提醒錯誤:[對象對象]Index.cshtml.cs 中的方法:public void FindUser(){  // code            }甚至沒有從 JS 函數調用該方法。我也讀過幾次從視圖中調用 C# 方法不是正確的方法。如果是這樣,我怎樣才能實現我的目標呢?
查看完整描述

6 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

我看到您正在使用 Razor 頁面。razor 頁面模型中的方法不是路由方法(它不能通過請求路由來調用),這就是為什么嘗試發送請求將不起作用ajax,Index\FindUser并且服務器返回的錯誤將是 404 not found。


或者,您可以使用剃刀頁面處理程序。


在您Index.cshtml.cs將方法重命名FindUser()為OnGetFindUser()或OnGetFindUserAsync()該方法是否為異步方法時。


然后,您可以通過向 發送請求來調用此方法"Index?handler=FindUser"。


// Note the difference in method name

public IActionResult OnGetFindUser()

{

? ? return new JsonResult("Founded user");? ? ? ? ??

}

function findUsers() {

? $.ajax({

? ? type: 'GET',

? ? // Note the difference in url (this works if you're actually in Index page)

? ? url: '?handler=FindUser',

? ? success: function (data) {

? ? ? alert(data);

? ? },

? ? error: function (error) {

? ? ? alert("Error: " + error);

? ? }

? })

}

查看完整回答
反對 回復 2023-05-14
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

我還不是很有經驗,我去年才開始編程,但我希望我能幫上一點忙。

我也有類似的問題,但我無法直接從 JavaScript 執行函數。您也許可以創建對 C# 的 API 調用并使 API 執行您想要的功能,然后將數據返回給客戶端。

如果我沒有誤解的話,您希望用戶鍵入一些文本,然后根據鍵入的文本從數據庫返回一個列表。

您可以在輸入標簽中使用 onChange,每次更改時,它都會向服務器執行 API 請求,服務器將搜索您需要的任何內容并將其作為 json 返回。然后在 JavaScript 中,解析數據并將其放入 select 標記中。

希望能幫助到你。


查看完整回答
反對 回復 2023-05-14
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

好的,首先,您在 javascript 函數中調用 jquery。

從 ajax 調用控制器操作方法非常簡單。

您需要確定請求類型、url、返回的數據類型、傳遞的參數等,然后在控制器操作和 ajax 請求成功和錯誤函數上設置斷點。然后您將能夠看到它成功或失敗的原因。

我會這樣做的方式是給輸入一個 id,然后當用戶鍵入文本時捕獲事件。

不要混淆 jquery 和 javascript。

Jquery 是一個將 javascript 封裝在其中的框架。

Javascript 是母語。


查看完整回答
反對 回復 2023-05-14
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

您可以像這樣使用 onkeyup 或 onblur


onblur:當你離開輸入框時,觸發一個函數


onkeyup:當用戶在輸入域中松開一個鍵時觸發的函數


然后像這樣修改你的代碼


html文件:


<input type="text" class="form-control" id="username" oninput="findUsers()" />

js


function findUsers() {

    var username= document.getElementById("username").value;

    $.ajax({

        type: 'GET',

        url: '/Home/FindUser

        dataType: 'json',

        data: {username},

        success: function (data) {

            console.log(data);

        },

        error: function (error) {

            console.log(error);

        }

    });

}

你必須返回這樣的東西。您正在使用 void 關鍵字,因此它不會向 FE 端返回任何內容


public JsonResult FindUser(string username)

{

    var object = {

     // something here

    }

    return Json(object);

}


查看完整回答
反對 回復 2023-05-14
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

像這樣更改您的 API:


public bool FindUser(string value)

{

    if (value == "Joe")

        return true;

    else

        return false;

}

然后這樣稱呼它:


<script type="text/javascript">


function findUsers() {

    var value = document.getElementById("value").value;

    $.ajax({

        type: 'GET',

        url: '/Home/FindUser,

        data: value,

        dataType: 'json',

        success: function (data) {

            alert(data);

        },

        error: function (error) {

            alert(error);

        }

    });

}

</script>

<br />

<input type="text" class="form-control" id="value" oninput="findUsers()" />


查看完整回答
反對 回復 2023-05-14
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

您可以通過向 Index.cshtml 添加少量內容來準確地調用方法。第一行可能是:

@page "{handler?}"

然后從ajax調用:

url:'/index/FindUser'

在 Index.cshtml.cs 調用方法中:

void  OnGetFindUser(){}


查看完整回答
反對 回復 2023-05-14
  • 6 回答
  • 0 關注
  • 379 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號