首页 > 解决方案 > 获取下拉选择值并将其发送到 asp.net core web application 中同一页面的 OnGet 方法

问题描述

我不是开发人员背景,我正在尝试开发一些实用程序来帮助自动化我们的一些手动过程,作为其中的一部分,我设计了一个 Web 应用程序(简单的网页)。我可以使用 .cshtml 中的以下代码填充下拉列表中的值

<select asp-for="SelectDD" asp-items=@Model.pvalues>
    <option value="" selected>Select a value..</option>
</select>

我想在 .cshtml 中使用一个有助于轻松读取值的表单,但是如果我在表单下包含 html 元素,则会出现错误。

一旦我选择了一个下拉菜单并单击一个按钮,就会使用以下代码调用带有所选下拉列表值的 OnGet() 方法

<a id="pc" asp-page="Comparison" asp-route-ID="dropdownselectedvalue"><button type="button" class="btn btn-primary">Compare</button></a>

但问题是我无法提取选定的下拉值,也无法通过 asp-route-ID 属性传递它。能够在控制台(Chrome 开发人员工具)中使用 jquery 获取选定的下拉值,但找不到任何可以帮助我通过单击按钮发送值的内容

标签: javascriptc#jqueryasp.net-corerazor

解决方案


以下帮助我解决了这个问题。

我已经修改了锚标记如下(我已经删除了 asp-route-ID 属性)

<a id ="ps" asp-page="Comparison"><button type="button" class="btn btn-primary" onclick="getOption()">Compare</button></a>

我编写了以下 javascript 函数来帮助我获取选定的下拉值并更改锚标记 href 值

function getOption() {
    selectElement = document.querySelector('#SelectDD');
    output = selectElement.value;
    document.querySelector('#pc').setAttribute("href", "/Comparison?ID=" + output);
}

我花了2-3天的时间,但终于能够解决。希望这对其他人有帮助


推荐阅读