Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回视图(模型:MyModel);ASP.Net核心剃须刀页面中的等效项_C#_Asp.net_Asp.net Core_Razor Pages - Fatal编程技术网

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 MVC
return视图(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模式。我不认为你可以像你想的那样做。剃须刀页面不是这样构建的。还有,你为什么要这样?