return视图(模型:MyModel);等同于 ASP.Net 个 Core Razor 页面
return View(model: MyModel); equivalent in ASP.Net Core Razor Pages
我希望在 ASP Razor Pages 中看到类似 return Page(model: MyModel);
的内容。而不是 Page();没有参数。
所以我可以 return 没有 PageModel 的页面 class。
我不能使用 TempData,因为 MyModel 是一个复杂类型。
如何获得与 ASP MVC return View(model: MyModel);
相同的功能
拜托,这个问题不是针对所有 MVC 开发人员的,而是针对有经验的 ASP.Net Core Razor Page 开发人员的。
谢谢。
好的,这里是一个简单的 Restaurant 应用程序的示例。
如您所见,Restaurant 对象是 DetailModel 中的一个 属性。一旦我将它设置在 OnGet() 方法中。我可以在我的 Razor 页面视图中访问它的数据。
public class DetailModel : PageModel
{
private readonly IRestaurantData restaurantData;
[TempData]
public string Message { get; set; }
public Restaurant Restaurant { get; set; }
public DetailModel(IRestaurantData restaurantData)
{
this.restaurantData = restaurantData;
}
public IActionResult OnGet(int restaurantId)
{
Restaurant = restaurantData.GetById(restaurantId);
if(Restaurant == null)
{
return RedirectToPage("./NotFound");
}
return Page();
}
}
以及页面的视图。
@page "{restaurantId:int}"
@model MyProject.Pages.Restaurants.DetailModel
@{
ViewData["Title"] = "Detail";
}
<h2>@Model.Restaurant.Name</h2>
<div>
Id: @Model.Restaurant.Id
</div>
<div>
Location: @Model.Restaurant.Location
</div>
<div>
Cuisine: @Model.Restaurant.Cuisine
</div>
@if(Model.Message != null)
{
<div class="alert alert-info">@Model.Message</div>
}
<a asp-page="./List" class="btn btn-default">All Restaurants</a>
真正的 Razor 页面作为一个页面工作,因此您不必 return 模型。你只要绑定它,你就可以在页面内部访问。
这有意义吗?
另请阅读 DOCS 以获取更多信息:https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-3.1&tabs=visual-studio
我希望在 ASP Razor Pages 中看到类似 return Page(model: MyModel);
的内容。而不是 Page();没有参数。
所以我可以 return 没有 PageModel 的页面 class。
我不能使用 TempData,因为 MyModel 是一个复杂类型。
如何获得与 ASP MVC return View(model: MyModel);
拜托,这个问题不是针对所有 MVC 开发人员的,而是针对有经验的 ASP.Net Core Razor Page 开发人员的。 谢谢。
好的,这里是一个简单的 Restaurant 应用程序的示例。 如您所见,Restaurant 对象是 DetailModel 中的一个 属性。一旦我将它设置在 OnGet() 方法中。我可以在我的 Razor 页面视图中访问它的数据。
public class DetailModel : PageModel
{
private readonly IRestaurantData restaurantData;
[TempData]
public string Message { get; set; }
public Restaurant Restaurant { get; set; }
public DetailModel(IRestaurantData restaurantData)
{
this.restaurantData = restaurantData;
}
public IActionResult OnGet(int restaurantId)
{
Restaurant = restaurantData.GetById(restaurantId);
if(Restaurant == null)
{
return RedirectToPage("./NotFound");
}
return Page();
}
}
以及页面的视图。
@page "{restaurantId:int}"
@model MyProject.Pages.Restaurants.DetailModel
@{
ViewData["Title"] = "Detail";
}
<h2>@Model.Restaurant.Name</h2>
<div>
Id: @Model.Restaurant.Id
</div>
<div>
Location: @Model.Restaurant.Location
</div>
<div>
Cuisine: @Model.Restaurant.Cuisine
</div>
@if(Model.Message != null)
{
<div class="alert alert-info">@Model.Message</div>
}
<a asp-page="./List" class="btn btn-default">All Restaurants</a>
真正的 Razor 页面作为一个页面工作,因此您不必 return 模型。你只要绑定它,你就可以在页面内部访问。
这有意义吗? 另请阅读 DOCS 以获取更多信息:https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-3.1&tabs=visual-studio