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

如何在ASP.NET Core MVC应用中将Rating文本框改为下拉菜单?

将ASP.NET Core MVC Create页面的Rating文本框改为下拉菜单

一、修改MoviesController中的Create(GET)方法

你之前的代码位置有误,应该在MoviesController的Create GET请求方法中编写(而非Index方法),用于为Create页面提供下拉选项。直接使用ASP.NET Core内置的SelectListItem类即可,无需自定义SelectRating:

using Microsoft.AspNetCore.Mvc.Rendering;

// ... 控制器其他代码

// GET: Movies/Create
public IActionResult Create()
{
    // 构建Rating选项列表
    var ratingOptions = new List<SelectListItem>
    {
        new SelectListItem { Text = "G", Value = "G" },
        new SelectListItem { Text = "PG", Value = "PG" },
        new SelectListItem { Text = "PG-13", Value = "PG-13" },
        new SelectListItem { Text = "R", Value = "R" }
    };

    // 通过ViewBag将选项传递到视图
    ViewBag.RatingOptions = ratingOptions;
    return View();
}

二、修改Create.cshtml视图文件

你需要编辑的是/Views/Movies/Create.cshtml(不是Index.cshtml),找到原Rating文本框代码并替换为下拉菜单:

原Rating字段代码示例:

<div class="form-group">
    <label asp-for="Rating" class="control-label"></label>
    <input asp-for="Rating" class="form-control" />
    <span asp-validation-for="Rating" class="text-danger"></span>
</div>

替换为:

<div class="form-group">
    <label asp-for="Rating" class="control-label"></label>
    <select asp-for="Rating" asp-items="@ViewBag.RatingOptions" class="form-control">
        <option value="">请选择评级</option> <!-- 可选的默认空选项 -->
    </select>
    <span asp-validation-for="Rating" class="text-danger"></span>
</div>

三、补充:同步修改Edit页面(可选)

若希望Edit页面的Rating也使用下拉菜单,只需在MoviesController的Edit(GET)方法中添加相同的Rating选项代码,再修改/Views/Movies/Edit.cshtml中的Rating字段,替换为上述下拉菜单代码即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:27:27