在ASP.NET Core 6 MVC中,我们可以使用@model在视图中声明模型,并传递模型数据。但是,如果我们还想在共享布局中使用相同的模型,并从视图中传递相应的数据,应该如何操作呢?以下是解决方法的步骤:
首先在共享布局文件(通常是"_Layout.cshtml")中,使用@{ Layout = null; }声明布局内容为空,以便我们可以从视图中指定布局。
在每个视图文件的首行,使用@{ Layout = "_Layout"; }指定我们想要使用的布局。
现在可以在视图中声明模型和传递数据。例如,在共享布局和视图中都使用同一个模型(例如"MyModel.cs"),可以按以下方式实现:
在MyModel.cs中定义模型的属性和方法:
public class MyModel
{
public string Name { get; set; }
public void DoSomething() { }
}
在共享布局中,声明模型并传递数据:
@model MyModel
@Model.Name
@RenderBody()
在视图中,同样声明模型并传递数据:
@model MyModel
@section Scripts {
}
Some content...
通过以上步骤,我们就可以在共享布局和视图中都使用@model并传递相应的数据了。