我不知道這是否會幫助你,或者是MVVM味道像剃刀很好的做法,但ASP.NET核心API的項目裏面,我經常使用自定義的全球DI'ed服務,如
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSingleton<IMyService, MyService>();
...
services.AddMvc();
}
您可以在您的IndexModel
和CustomModel
之間交換數據,例如。通過設置它像
public class CustomModel : PageModel
{
public IMyService _myService;
public CustomModel(IMyService myService)
{
_myService = myService;
}
public async Task<IActionResult> OnPostAsync(...)
{
...
_myService.SetDataOrSometing(...);
...
return RedirectToPage();
}
}
和檢索它像
public class IndexModel : PageModel
{
public IMyService _myService;
public IndexModel(IMyService myService)
{
_myService = myService;
}
public void OnGet()
{
var data = _myService.GetDataOrSomething();
}
}
從這裏你也可以使用ObserveableCollection並註冊事件,以獲取更新到你PageModels。
恕我直言,這是一種將對象從一個頁面傳遞到另一個頁面的方式,並且清晰地分離關注點。
將對象從視圖中發回到控制器時發送對象 –
因此它開始。 Web Forms的禍害,重生爲Razor Pages。當事情是「魔法」時,如何做這樣簡單的事情就不再明顯了。 Razor Pages或不,它的工作原理與任何其他HTTP請求相同。您必須將這些值發佈到新的URL,然後從結果URL的請求正文中檢索數據。 –
忘記微軟說的話,保存一隻小貓,不要使用Razor Pages。 –