You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC中替代asp-for获取select选中值及传值问题解决

解决ASP.NET MVC中不用asp-for获取select选中值的方法

服务器端直接获取

去掉asp-for属性,保留name属性(表单提交时的关键标识),后端Action可通过两种方式获取选中值:

修改后的select代码:

<div class="wrapper">
  <select id="choose" name="choose" class="form">                   
    <option value="Dog">Dog</option>
    <option value="Cat">Cat</option>
    <option value="Bird">Bird</option>   
    <option value="other">Other</option>   
  </select>
</div>

后端Action实现:

// 方式1:通过Request.Form直接读取
[HttpPost]
public ActionResult Save()
{
    string selectedCategory = Request.Form["choose"];
    // 后续业务逻辑
    return View();
}

// 方式2:利用参数自动绑定
[HttpPost]
public ActionResult Save(string choose)
{
    // 参数choose即为select选中的value值
    // 后续业务逻辑
    return View();
}

客户端JavaScript获取

如果需要在前端(比如表单提交前)获取选中值,直接通过DOM操作实现:

// 获取选中项的value值
let selectedValue = document.getElementById('choose').value;

// 获取选中项的显示文本(当value和文本不一致时适用)
let selectedText = document.getElementById('choose').options[document.getElementById('choose').selectedIndex].text;

补充说明

你之前使用asp-for="@Model.Category.Name"失效,大概率是手动设置的name="choose"与asp-for自动生成的name属性冲突导致的。若后续需要重新绑定Model,建议仅保留asp-for,不要手动指定name属性。

内容的提问来源于stack exchange,提问作者Mateo_55113

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:15:18