這是對此的后續問題:如何將引數傳遞給 RazorPage OnGet()?
問題是用戶名字串永遠不會進入 OnGet 方法。
我知道我做錯了 - 因此我為什么要尋求幫助,因為我不知道該怎么做。
我的問題是我的 Index.cshtml 頁面需要呼叫在啟動時初始化的 OnGet() 方法。(上面的鏈接只詳細說明了如何通過錨傳遞引數)。
我創建了一個公共字串屬性用戶名。
然后在我的 Index.cshtml 檔案中,我在宣告模型之前定義了屬性(之后我也嘗試過)。
索引.cshtml.cs
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public List<DisplayJob> Jobs { get; set; }
public string Username { get; set; }
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public void OnGet()
{
Console.WriteLine("username: " Username);
Jobs = DisplayJobService.GetListDisplayJobs(-1, 100, "", "", Username);
}
}
索引.cshtml
@page
@{
ViewData["Username"] = "s32xckJ1";
Model.Username = "s32xckJ1";
}
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<p>Jobs Count: @Model.Jobs.Count()</p>
uj5u.com熱心網友回復:
正如您所發現的,就路由而言。
@page "{datestart}/{dateend}/{referenceid:int=0}/{client?}"
可能是一種奇怪的方式,但您可以使用 AddPageRoute 方法添加額外的根。
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/details", "{datestart}/{dateend}/{client?}");
});
使用屬性 [httpget] 通過 viewmodel 獲取引數。發送到剃須刀 cshtml 可以使用 viewbag。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/437685.html
