C# 返回视图(模型:MyModel);ASP.Net核心剃须刀页面中的等效项
我希望看到类似于C# 返回视图(模型:MyModel);ASP.Net核心剃须刀页面中的等效项,c#,asp.net,asp.net-core,razor-pages,C#,Asp.net,Asp.net Core,Razor Pages,我希望看到类似于返回页面(model:MyModel)的内容。而不是页面();没有参数 所以我可以返回没有PageModel类的页面 我不能使用TempData,因为MyModel是一个复杂的类型 如何获得与ASP MVCreturn视图(model:MyModel)相同的功能 请注意,问题不是针对所有MVC开发人员,而是针对经验丰富的ASP.Net核心页面开发人员。 谢谢。好,下面是一个简单的餐厅应用程序的示例。 如您所见,餐厅对象是DetailModel中的一个属性。一旦我在OnGet()方
返回页面(model:MyModel)的内容。而不是页面();没有参数
所以我可以返回没有PageModel类的页面
我不能使用TempData,因为MyModel是一个复杂的类型
如何获得与ASP MVCreturn视图(model:MyModel)相同的功能代码>
请注意,问题不是针对所有MVC开发人员,而是针对经验丰富的ASP.Net核心页面开发人员。
谢谢。好,下面是一个简单的餐厅应用程序的示例。
如您所见,餐厅对象是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>
@page“{restaurantId:int}”
@模型MyProject.Pages.Restaurants.DetailModel
@{
ViewData[“标题”]=“详细信息”;
}
@Model.Restaurant.Name
Id:@Model.Restaurant.Id
地点:@Model.Restaurant.Location
烹饪:@Model.Restaurant.courine
@如果(Model.Message!=null)
{
@模型消息
}
您应该返回一个在函数other wise{model:MyModel}中定义的对象。这个问题与您的另一个问题基本相同:我要返回的页面没有PageModel。请提供一个可复制的小示例。这是没有道理的。为了拥有一个razor页面,您需要一个从PageModel派生的类。您正在尝试返回复杂对象,对吗?我遗漏了什么吗?如果你想拥有与MVC相同的功能,你的ASP.NET内核可以使用MVC模式。我不想使用MVC模式。我不认为你可以像你想的那样做。剃须刀页面不是这样构建的。还有,你为什么要这样?