【发布时间】:2021-12-07 16:01:29
【问题描述】:
有一个controller:
[Route("Socket")]
public class SocketController : Controller
{
[Route("New")]
public ActionResult NewSocketForm()
{
ViewBag.ChargeTypes = new List<SelectListItem>()
{
new SelectListItem("bla", "0"),
new SelectListItem("bla2", "1")
};
var model = new Model();
return View(model);
}
}
有一个View:
@model blabla.Model
<div class="soket-item">
<div class="form-group">
<label asp-for="ChargeType" class="control-label"></label>
<select asp-for="ChargeType" class="form-control" asp-items="ViewBag.ChargeTypes" />
<span asp-validation-for="ChargeType" class="text-danger"></span>
</div>
</div>
还有一个Model:
public class Model
{
[Required]
[Range(0, 5)]
[Display(Name = "Charge Type")]
public int ChargeType { get; set; }
}
我有两个问题:
-
asp-items不会从ViewBag加载列表 -
label不会从Model加载显示名称 为什么?
【问题讨论】:
-
标签助手似乎没有执行。您是否有包含
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers(docs) 的 _ViewImports.cshtml 文件? -
@KirkLarkin 是的,我有
Pages\\_ViewImports.cshtml,但我的视图位于Views目录中。 -
你还有一个 Views\_ViewImports.cshtml 文件吗? Pages 版本不适用于 Views 文件夹。
-
@KirkLarkin 不,我不知道i.stack.imgur.com/88izq.png
-
这种情况下,自己添加。确保它有我上面显示的
@addTagHelper行。
标签: asp.net asp.net-mvc asp.net-core