jquery - 剃刀页面中的 URL 不会将数据发送到另一个页面
问题描述
我正在使用 Razor Pages,我有两个页面CreateModel
,EditModel
在 CreateModel 中有OnGetSubGroups
处理程序:
public class CreateModel : PageModel
{
//Dependency Injection is here
public IActionResult OnGetSubGroups(int subId)
{
SubOptions = courseService.CourseSubGroups(subId);
return new JsonResult(SubOptions);
}
}
现在的问题是当我想在 Edit.cshtml 中使用 JQuery Ajax 将数据传递到OnGetSubGroups
URL 时不起作用:
$('#Course_GroupId').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
$.ajax({
type: "Get",
data: {
subId: valueSelected,
},
url: "/Create?handler=SubGroups",
contentType: "application/json; charset=utf-8",
dataType: "json"
});
我使用了断点并且 url 不起作用。问题出在哪里?
解决方案
Edit
对于从到的路由Create
,您不能使用"/Create?handler=SubGroups"
会生成类似 URL的 URLhttps://localhost:44389/Create?handler=SubGroups&subId=5
并忽略PageFolder
. 我假设CreateModel
不在根文件夹Pages
中。如果是这样,您不应将 URL 与"/Create?handler=SubGroups"
.
我建议你试试下面的代码:
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "Get",
data: {
subId: 5,
},
url:"@Url.Page("Create", "SubGroups")",
contentType: "application/json; charset=utf-8",
dataType: "json"
});
});
</script>
推荐阅读
- github-api - 如何使用 Github GraphQL 搜索返回具有相似名称(包括登录名和显示名)的用户配置文件?
- javascript - 未捕获的 ReferenceError:未定义导入的类
- wpf - 从 xaml 绑定到 System.Windows 枚举
- scala - Spark 在集群中使用 Docker:BlockManagerId;本地类不兼容
- angular - Angular 内置指令不适用于 Foundation 组件
- deep-learning - 批量大小是如何确定的?
- c# - 将 SqlBotDataStore 用于机器人状态回退到 state.botframework.com
- vba - Excel 2013 VBA 运行时错误 5 与 listobjects.add
- swift - 字段级自定义解码器
- javascript - 如何在 onClick 事件的函数中传递参数