无法将模型值分配给剃须刀页面中的参数

Posted

技术标签:

【中文标题】无法将模型值分配给剃须刀页面中的参数【英文标题】:Not able to assign model value to a parameter in razor pages 【发布时间】:2019-05-09 14:42:11 【问题描述】:

我有一个剃须刀页面代码,用于显示页面。

public class RegisterModel : PageModel


    [BindProperty]
    public InputModel Input  get; set; 

    public string Test get; set;
    public class InputModel
            
        public List<SelectListItem> QList  get; set; 
    

    public void OnGet()
    
        Helper helper = new Helper(_logger, _context);
        var Test = helper.GetTestString();
        var saltyList = helper.GetAllApples();

        Input.QList = saltyList;
    

变量 saltyList 有 15 个值。但我收到一个错误:

System.ExecutionEngineException:引发了“System.ExecutionEngineException”类型的异常。

我错过了什么吗?是否无法在 Get 方法中分配值或者我错过了什么?在分配值之前我没有初始化 Input.Qlist 是否存在问题?测试工作正常,但不是 InputModel 分配。

【问题讨论】:

【参考方案1】:

您需要在 OnGet 方法中分配 Input 的值。像这样的:

public void OnGet()

    Helper helper = new Helper(_logger, _context);
    var Test = helper.GetTestString();
    var saltyList = helper.GetAllApples();

    Input = new InputModel
               
                QuestionList = questionList
            ;

如果您想像现在一样在 Get 中绑定值,您可能必须对 Bindproperty 使用 SupportGet=true。

[BindProperty(SupportGet=true)]
public InputModel Input  get; set; 

您可以阅读更多关于它的信息here

【讨论】:

以上是关于无法将模型值分配给剃须刀页面中的参数的主要内容,如果未能解决你的问题,请参考以下文章

如何将模型传递给剃须刀页面自定义助手

通过 javascript 将索引动态分配给 Razor 模型

将枚举转换为核心 2.1 剃须刀页面中的下拉列表

无法更改页面中的对象值,但在控制台日志中显示为工作(angularjs)

如何将变量从一个剃须刀页面传递到另一个?

无法将文件中的多个值分配给 json 请求