[英]pass model data between razor pages
我嘗試在兩個 Razor 頁面之間傳遞模型數據,數據不是我想要傳遞到第二頁的字符串或布爾值或 int 數據是模型,我這樣做是這樣的,
public class AskLibrarian
{
public int Id { get; set; }
public string FullName { get; set; }
public string Subject { get; set; }
public string Email { get; set; }
public string Text { get; set; }
public string UserIp { get; set; }
public DateTime CreateDate { get; set; }
public bool ReadIt { get; set; }
public bool Answer { get; set; }
public string reciptCode { get; set; }
}
並在Get 方法上以這種方式傳遞數據:
[BindProperty]
public AskLibrarian AskLibrarian { get; set; }
public async Task<IActionResult> OnPostQuestionAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
AskLibrarian.Answer = false;
AskLibrarian.CreateDate = DateTime.Now;
AskLibrarian.ReadIt = false;
string userIp = $"{ HttpContext.Connection.RemoteIpAddress}";
if (string.IsNullOrEmpty(userIp))
{
userIp = "127.0.0.1";
}
AskLibrarian.UserIp = userIp;
string rndNuber = Business.RandomNumberForQuestion.randCode;
AskLibrarian.reciptCode = rndNuber;
await _emailSenderService.SendEmailAsync(AskLibrarian.Email, AskLibrarian.FullName, rndNuber);
_context.AskLibrarians.Add(AskLibrarian);
await _context.SaveChangesAsync();
Message = "your message sended";
//return RedirectToPage("/Subfolder/Index", new { SFId = 7 });
return RedirectToPage("/Subfolder/AskLibrarianCode", new { asklib = AskLibrarian });
}
在第二頁的 post方法中,喜歡通過這種方式獲取數據:
public void OnGet(Model.AskLibrarian asklib)
{
askLibrarianVM = new AskLibrarianVM
{
Answered = false,
CreateDate = asklib.CreateDate,
LastUpdate = asklib.CreateDate,
RandomeCode = asklib.reciptCode,
Status = false,
};
}
但是asklib是空的,我在Get 方法的末尾設置了一個斷點,如果用有效值填充了asklib ,但在post 方法中,當我嘗試獲取數據時,asklib 是空的,我的錯誤是什么
最低限度的摩擦方式是return View("SomeViewForTheModel", AskLibrarian)
並使用完全不同的視圖來做你的事情。 您的第二頁控制器操作確實沒有做任何事情。
否則,您必須將與您的AskLibrarian
對象關聯的 ID 保存在數據庫中,然后通過將 ID 放在 URL 路徑中來在第二頁上查找它(確保驗證用戶應該看到它! ),或者通過在數據庫中查找用戶擁有的任何內容。
簡單的答案是:
return RedirectToPage("/Subfolder/AskLibrarianCode", AskLibrarian );
我的錯誤是
... new{asklib = AskLibrarian});
兩個多小時后
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.