javascript - 将数据从javascript传递到asp.net core 2 razor page方法

标签 javascript c# asp.net-core razor-pages

是否有任何将更改事件数据的 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/

相关文章:

javascript - 根据 URL 调用不同的变量

javascript - 在 Node js 中定义模型时,Schema 不是构造函数

javascript - 如何获取元素的 ID

asp.net - 使用 ASP.NET Core 进行 Ws-Federation 身份验证

docker - AKS 外部负载均衡器未与 PODS 通信

.net - Azure逻辑应用程序运行历史记录和触发器历史记录

javascript - D3.js 未在 HTML 中附加更新的树

C# 方法组奇怪

c# - 如何美化 JSON 以在 TextBox 中显示?

c# - 将新项目添加到解决方案