是否有任何将更改事件数据的 HTML 属性中的一些数据传递到 asp.net core razor 页面? 我想使用 JS 从 HTML 的下拉列表中获取一个 ID,并将其传递给 Razor Pages(asp.net core 2)并从自定义方法中获取结果? 如果可能的话,我希望代码如下所示:)
JS代码
$('#Neighborhood_DistrictId').on('change', function () {
@Model.GetDistrictName($('#Neighborhood_DistrictId').val());
});
在 Razor 页面上
public string GetDistrictName(Guid id)
{
return httpSystemApi.GetByIdAsync<District>("Districts", id).Result.Name;
}
GetDistrictName 方法正在连接到 API 并返回值。如果有办法做我想做的事,我不想用 JS 直接连接到 API
最佳答案
我正在玩 Razor Pages,我遇到了同样的问题。下面是我的工作。似乎应该有一些事件处理程序会做同样的事情,但我还没有找到另一种方法。我试着像对待 MVC Controller 一样对待它,但我相信它需要某种形式的 token ,所以它不起作用 [name="__RequestVerificationToken"]。 基本上,我在这里所做的就是让页面认为我点击了一个按钮,然后告诉它要查看哪个功能。此外,您可以访问所有模型字段,因此无需传递它们。
这是选择列表:
<div class="col-md-2"><select id="ddlPortalName" asp-for="selectedPortalName" asp-items="Model.portalNames" onchange="ConcatenateURL();"></select></div>
然后是 JS 函数,请注意我必须更改表单操作以告诉它要查看哪个页面函数。
<script type="text/javascript">
function ConcatenateURL() {
document.forms[0].action = "VisibilityTest?handler=ConcatURL";
document.forms[0].submit();
}
</script>
最后是 c# 文件方法。
public void OnPostConcatURL()
关于javascript - 将数据从javascript传递到asp.net core 2 razor page方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46091612/