我有一个用于显示页面的剃刀页面代码。
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分配却没有。
答案 0 :(得分:2)
您需要在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