【问题标题】:Initialize value for model inside the Razor page在 Razor 页面中初始化模型的值
【发布时间】:2018-11-16 14:43:36
【问题描述】:

我有一个模型,想将它用于三个 Razor 页面。唯一的区别是模型中定义的一个公共整数,我需要为每一页设置不同的值。我试过了:

@model IndexModel

@{
    ViewData["Title"] = "Home page";
    Model.type = 0;
}

type 是我要设置的值,但我需要它用于模型的 OnGetAsync 方法,该方法在 @model IndexModel 之后执行。有没有办法将其定义为模型初始化的一部分?

或者,如果有办法获取引用模型的 Razor 页面,我可以为每种情况相应地设置值。

【问题讨论】:

  • 我想你会在控制器或模型本身中设置值,而不是在视图中。
  • 当然,我不介意,但我需要根据哪个视图进行不同的设置。
  • 为什么你不能在控制器中知道呢?控制器肯定知道它将用户引导到哪个视图?

标签: c# asp.net entity-framework razor-pages


【解决方案1】:

如 cmets 中所述,您应该在控制器中执行此操作,而不是在您的视图中。你可以这样做:

    public ActionResult View1()
    {
        MyModel model = new MyModel();
        model.Type = 1;
        return View(model);
    }

    public ActionResult View2()
    {
        MyModel model = new MyModel();
        model.Type = 2;
        return View(model);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2021-11-09
    • 2022-01-01
    • 1970-01-01
    • 2011-03-26
    • 2021-12-13
    • 1970-01-01
    相关资源
    最近更新 更多