Javascript 获取下拉选择值并将其发送到asp.net核心web应用程序中同一页面的OnGet方法

Javascript 获取下拉选择值并将其发送到asp.net核心web应用程序中同一页面的OnGet方法,javascript,c#,jquery,asp.net-core,razor,Javascript,C#,Jquery,Asp.net Core,Razor,我不是一个有开发背景的人,我正在尝试开发一些实用程序,帮助我们自动化一些手动过程,作为其中的一部分,我设计了一个web应用程序(简单网页)。我能够使用.cshtml中的以下代码填充下拉列表中的值 <select asp-for="SelectDD" asp-items=@Model.pvalues> <option value="" selected>Select a value..</option> </select> 选择一个值。。

我不是一个有开发背景的人,我正在尝试开发一些实用程序,帮助我们自动化一些手动过程,作为其中的一部分,我设计了一个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属性传递它。能够使用控制台中的jquery(Chrome开发者工具)获取所选下拉列表值,但无法找到任何有助于我通过单击按钮发送值的内容

但如果在表单下包含html元素,则会出现错误

  • 这里的错误是什么

  • 您要提交的属性名称是什么?是选择DD还是ID


使用表单标记包装元素,并将表单方法设置为get,然后使用提交按钮:


选择一个值。。
在后端,您可以使用get方法中的参数捕捉select的值:

public void OnGet(int-ID)
{
// ....
}
或者使用属性名称并添加绑定属性:

[BindProperty(SupportsGet=true)]
公共int ID{get;set;};
公共互联网
{
// ...
}

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

我修改了锚标记,如下所示(我删除了asp路由ID属性)


我花了2-3天在这个问题上,但最终能够解决。希望这能帮助其他人

string=SelectDD.SelectedItem.Value;谢谢你,米克尔。请问我需要在哪里使用上述线路?你是说这个比较吗?如果我使用一个带有get方法的表单,页面会被刷新多次,因为我认为它是从当前的page get方法加载的。如果我用post方法将所有内容都放在表单中,我会收到http错误400。我将无法共享代码,因为它包含一些机密数据。谢谢你的帮助,我现在可以解决这个问题了
<a id ="ps" asp-page="Comparison"><button type="button" class="btn btn-primary" onclick="getOption()">Compare</button></a>
function getOption() {
    selectElement = document.querySelector('#SelectDD');
    output = selectElement.value;
    document.querySelector('#pc').setAttribute("href", "/Comparison?ID=" + output);
}