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 关注
- 226 浏览
添加回答
举报