Razor Pages OnGet 参数
Razor Pages OnGet Parameter
这是一个后续问题:
问题是用户名字符串从未进入 OnGet 方法。
我知道我做错了 - 因此我寻求帮助是因为我不确定该怎么做。
我的问题是我的 Index.cshtml 页面需要调用在启动时初始化的 OnGet() 方法。 (上面的link只是详细说明了如何通过锚点传递参数)。
我创建了一个 public 字符串 属性 用户名。
然后在我的 Index.cshtml 文件中,我在声明模型之前定义了 属性(之后我也尝试过)。
Index.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);
}
}
Index.cshtml
@page
@{
ViewData["Username"] = "s32xckJ1";
Model.Username = "s32xckJ1";
}
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<p>Jobs Count: @Model.Jobs.Count()</p>
正如您所发现的,就路由而言。
@page "{datestart}/{dateend}/{referenceid:int=0}/{client?}"
这可能是一种奇怪的方式,但您可以使用 AddPageRoute 方法添加附加根。
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/details", "{datestart}/{dateend}/{client?}");
});
使用属性 [httpget]
通过视图模型获取参数。
发送到 razor cshtml 可以使用 viewbag。
这是一个后续问题:
问题是用户名字符串从未进入 OnGet 方法。
我知道我做错了 - 因此我寻求帮助是因为我不确定该怎么做。
我的问题是我的 Index.cshtml 页面需要调用在启动时初始化的 OnGet() 方法。 (上面的link只是详细说明了如何通过锚点传递参数)。
我创建了一个 public 字符串 属性 用户名。
然后在我的 Index.cshtml 文件中,我在声明模型之前定义了 属性(之后我也尝试过)。
Index.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);
}
}
Index.cshtml
@page
@{
ViewData["Username"] = "s32xckJ1";
Model.Username = "s32xckJ1";
}
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<p>Jobs Count: @Model.Jobs.Count()</p>
正如您所发现的,就路由而言。
@page "{datestart}/{dateend}/{referenceid:int=0}/{client?}"
这可能是一种奇怪的方式,但您可以使用 AddPageRoute 方法添加附加根。
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/details", "{datestart}/{dateend}/{client?}");
});
使用属性 [httpget] 通过视图模型获取参数。 发送到 razor cshtml 可以使用 viewbag。