【发布时间】:2019-01-18 23:57:17
【问题描述】:
我正在尝试将值从 Razor Page 中的另一个 OnGetAsync 分配给 Model 以进行一些数据验证,并将它们分配回 OnPostAsync 上的实际 Model 以保存数据。
我在这一行收到NullReferenceException 错误Input.TestName = TestData.TestName;
public class TestData
{
[Key]
public int TestID { get; set; }
public string TestName { get; set; }
}
页面模型
private readonly Test.Models.TestContext _context;
public EditModel(Test.Models.TestContext context)
{
_context = context;
}
[BindProperty]
public TestData TestData { get; set; }
[BindProperty]
public InputModel Input { get; set; }
public class InputModel
{
[Required, MaxLength(50), MinLength(3)]
public string TestName { get; set; }
}
public async Task<IActionResult> OnGetAsync(int? id)
{
TestData = await _context.TestData.FirstOrDefaultAsync(m => m.TestID == id);
Input.TestName = TestData.TestName; //Error Occurs here. TestData.TestName has value while debug.
return Page();
}
public async Task<IActionResult> OnPostAsync()
{
TestData.TestName = Input.TestName;
_context.Attach(TestData).State = EntityState.Modified;
await _context.SaveChangesAsync();
return RedirectToPage("./Index");
}
我在InputModel class 之外尝试了TestName,它运行良好,但我有很多像这样使用的属性。所以我想把它们放在一个class
请提出我在这里缺少的内容。
【问题讨论】:
标签: c# asp.net-core asp.net-core-2.1 razor-pages