【问题标题】:ASP.NET MVC Selected Value changeASP.NET MVC 选定值更改
【发布时间】:2021-11-14 20:01:27
【问题描述】:

我正在开发一个 ASP.NET MVC 项目。

这是我一直坚持的代码:

<select>
    <option asp-controller="Home" asp-action="Catalog" asp-route-id="1" >Fish</option>
    <option asp-controller="Home" asp-action="Catalog" asp-route-id="2">Rodent</option>
</select>

<a asp-controller="Home" asp-action="Catalog" asp-route-id="2">Click to show Category num 2</a>

&lt;a&gt; 标签有效,而选择无效。

我尝试使用提交按钮将其放在表单上,​​但仍然无法正常工作。

我错过了什么?

【问题讨论】:

标签: asp.net-mvc selectedvalue


【解决方案1】:

您使用的那些 asp 标签助手不会对 &lt;option&gt; 元素做任何事情。您需要提交表格并给他们value。您的 &lt;select&gt; 还需要一个 name 属性,以便您的操作可以绑定到变量。

您的表格:

<form id="myForm" asp-controller="Home" asp-action="Catalog" method="get">
    <select name="id">
        <option value="1">Fish</option>
        <option value="2">Rodent</option>
    </select>
    <button type="submit">Send</button>
</form>

控制器动作:

[HttpGet]
public IActionResult Catalog(int id)
{
    return View();
}

如果您想在选择更改时自动发送,则需要 JavaScript。最简单的就是用js提交表单。

向元素添加事件处理程序

<select name="id" onchange="handleChange()">
    <option value="1">Fish</option>
    <option value="2">Rodent</option>
</select>

并定义偶数处理程序

function handleChange() {
    document.getElementById('myForm').submit();
}

另一种选择是监听事件并发出 AJAX 请求,而不是提交表单。

Vanilla JavaScript 和 jQuery 示例here.

【讨论】:

  • 嗨!谢谢它的工作,顺便说一句,我可以让选择提交而没有提交按钮吗?只是选择将是。
猜你喜欢
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 2015-11-29
  • 2013-03-30
  • 1970-01-01
相关资源
最近更新 更多