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

Posted

技术标签:

【中文标题】将数据从 javascript 传递到 asp.net core 2 razor 页面方法【英文标题】:pass data from javascript to asp.net core 2 razor page method 【发布时间】:2018-02-15 21:53:49 【问题描述】:

是否可以将更改事件数据的 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

【问题讨论】:

【参考方案1】:

我正在玩 Razor Pages,但我遇到了同样的问题。下面是我的工作。似乎应该有一些事件处理程序会做同样的事情,但我还没有找到另一种方法。我尝试将它视为 MVC 控制器,但我相信它期望有一些表单令牌,因此它不起作用 [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()

【讨论】:

【参考方案2】:
$('#Neighborhood_DistrictId').on('change', function () 
    @Model.GetDistrictName($('#Neighborhood_DistrictId').val());
);

@Model.GetDistrictName 是服务器端方法,而不是直接在脚本内部使用

$('#Neighborhood_DistrictId').on('change', function () 
  var url="http://localhost/controllername/methodname/id=";
  url=url+$('#Neighborhood_DistrictId').val()
$.get(url,function(data)
...some code
);
);

var url="http://localhost/controllername/methodname/id=";

在 mvc 5 中从服务器端生成 url 并设置客户端变量

var url='Url.Action("action","controllername","actionname")';

这是使用 javascript 或 jquery 调用控制器的唯一方法,而不是直接在 javascript 中使用服务器端方法。

【讨论】:

好吧,我不知道如何使用它 asp.net core 2 razor pages。因为像MVC这样的剃须刀页面没有控制器?

以上是关于将数据从 javascript 传递到 asp.net core 2 razor 页面方法的主要内容,如果未能解决你的问题,请参考以下文章

如何将变量和数据从 PHP 传递到 JavaScript?

Rails - 将信息从视图传递到 Javascript

如何将 MB 的数据从 PHP 传递到 Javascript [关闭]

如何将数据从 javascript 函数传递到重定向页面?

如何将 json 数据从 ruby​​ 控制器传递到 javascript (Rails 6.1)?

将数据从 JavaScript 传递到 Swift。 UserContentController 函数从未调用过问题