先定义一个实体,里面定义一组数组SelectListItem,这个是微软自带的,命名空间是:Microsoft.AspNetCore.Mvc.Rendering
比如以下代码:
/// <summary>
/// 消息模板创建和修改的请求实体
/// </summary>
public class MessageTemplateReq
{
/// <summary>
/// 系统标识
/// </summary>
[Required(ErrorMessage = "请填写系统标识")]
[StringLength(64, MinimumLength = 1, ErrorMessage = "请填写系统标识")]
public string msg_code { get; set; }
/// <summary>
/// 消息类型(sms短信,wechat微信,minapp微信小程序)
/// </summary>
[Required(ErrorMessage = "消息类型必选")]
[MaxLength(64)]
public string msg_type { get; set; }
/// <summary>
/// 下拉列表用
/// </summary>
public List<SelectListItem> msg_types { get; } = new List<SelectListItem>
{
new SelectListItem { Value = "sms", Text = "短信" },
new SelectListItem { Value = "wechat", Text = "微信" },
new SelectListItem { Value = "minapp", Text = "微信小程序" },
};
}
mvc的识图view里的代码如下:
<div class="form-group">
<label for="parentList" class="col-sm-2 control-label">模板类型:</label>
<div class="col-sm-3">
<select asp-for="msg_type" asp-items="Model.msg_types" class="form-control valid">
</select>
</div>
<div class="col-sm-3">
<span asp-validation-for="msg_type"></span>
</div>
</div>
用到select控件,asp-for是指这个select的选中的值最终给一个字段msg_type。
下拉控件select 的选项则使用 asp-items,指向我们定义的数组 msg_types 。