在 Asp.Net 核心 MVC 视图中找不到类型或命名空间

Type or namespace cannot be found in Asp.Net Core MVC view

我正在 Asp.Net Core Mvc 和 运行 上制作计算器时遇到问题。 我有 CalcModelCalcController。还有 IndexCalculator 视图。

public class CalcModel
{

    public decimal FirstNumber { get; set; }
    public decimal SecondNumber { get; set; }
    public decimal Result { get; set; }
    public CalculationMethod calculationMethod { get; set; }

    public enum CalculationMethod
    {
        [Display(Name = "+")]
        Addition,
        [Display(Name = "-")]
        Subtraction,
        [Display(Name = "*")]
        Multiplication,
        [Display(Name = "/")]
        Division
    }

}

我的Controller里面只有一个加法:

public class CalcController : Controller
{
    public IActionResult IndexCalculator()
    {
        return View(new CalcModel());
    }

    [HttpPost]

    public async Task<IActionResult> IndexCalculator(CalcModel model)
    {
        ModelState.Clear();
        switch (model.calculationMethod)
        {
            case CalculationMethod.Addition:
                model.Result = model.FirstNumber + model.SecondNumber;
                break;
        }
        return View(model);

    }
}

还有我的妻子:

@using (Html.BeginForm("IndexCalculator", "CalcModel", FormMethod.Post, new { enctype = "multipart/form-data" }))
        {
            @Html.LabelFor(m => m.FirstNumber) @Html.TextBoxFor(x => x.FirstNumber)<br />
            @Html.LabelFor(m => m.SecondNumber) @Html.TextBoxFor(x => x.SecondNumber)<br />
            @Html.LabelFor(m => m.Result) @Html.TextBoxFor(x => x.Result)<br />
            @Html.DropDownListFor(m => m.calculationMethod, (Html.GetEnumSelectList(typeof(CalculationMethod))))
            <input type="submit" />

我得到了错误

Could not find the type or namespace name CalculationMethod

在这一行中:

@Html.DropDownListFor(m => m.calculationMethod, (Html.GetEnumSelectList(typeof(CalculationMethod))))

我的错误是什么?

作为 Mat J,您可以通过添加 CalcModel 前缀来访问 CalculatorMethod 枚举,因为您已经在 class 中声明了枚举并且它是嵌套的CalcModel.

的类型
Html.GetEnumSelectList<CalcModel.CalculatorMethod>()

所有的功劳归于Mat J。(我一开始没有注意到类型封装部分)。

如果他把他的评论转化为答案,我会删除我的