6 回答
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);
? ? }
? })
}
TA貢獻1828條經驗 獲得超3個贊
我還不是很有經驗,我去年才開始編程,但我希望我能幫上一點忙。
我也有類似的問題,但我無法直接從 JavaScript 執行函數。您也許可以創建對 C# 的 API 調用并使 API 執行您想要的功能,然后將數據返回給客戶端。
如果我沒有誤解的話,您希望用戶鍵入一些文本,然后根據鍵入的文本從數據庫返回一個列表。
您可以在輸入標簽中使用 onChange,每次更改時,它都會向服務器執行 API 請求,服務器將搜索您需要的任何內容并將其作為 json 返回。然后在 JavaScript 中,解析數據并將其放入 select 標記中。
希望能幫助到你。
TA貢獻1773條經驗 獲得超3個贊
好的,首先,您在 javascript 函數中調用 jquery。
從 ajax 調用控制器操作方法非常簡單。
您需要確定請求類型、url、返回的數據類型、傳遞的參數等,然后在控制器操作和 ajax 請求成功和錯誤函數上設置斷點。然后您將能夠看到它成功或失敗的原因。
我會這樣做的方式是給輸入一個 id,然后當用戶鍵入文本時捕獲事件。
不要混淆 jquery 和 javascript。
Jquery 是一個將 javascript 封裝在其中的框架。
Javascript 是母語。
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);
}
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()" />
TA貢獻1834條經驗 獲得超8個贊
您可以通過向 Index.cshtml 添加少量內容來準確地調用方法。第一行可能是:
@page "{handler?}"然后從ajax調用:
url:'/index/FindUser'
在 Index.cshtml.cs 調用方法中:
void OnGetFindUser(){}- 6 回答
- 0 關注
- 379 瀏覽
添加回答
舉報
