asp.net-mvc – 如何在MVC中创建通用视图模型?
我想在MVC中使用viewmodel而不是使用viewbag.有没有办法可以创建一个在我的所有控制器之间共享的通用视图模型,然后在我的视图中使用它?我需要什么样的代码?我在考虑在基本控制器中创建一些东西.那可能吗?
解决方法
我相信在控制器和视图之间传递数据的主要方法是创建一个类,该类表示要传递给视图的数据并将该模型变量传递给view方法.
/Models/Home/IndexViewModel.cs namespace MyProject.Models.Home { public class IndexViewModel { public string Message { get; set; } } } 控制器/ HomeController.cs public class HomeController { public ActionResult Index() { IndexViewModel model = new IndexViewModel(); model.Message = "Hello World!"; View(model); } } /Views/Home/Index.cshtml(在Razor MVC3中) @Model MyProject.Models.Home.IndexViewModel //strongly-typed view <h1>@model.Message</h1> 让我们来看看这个简单的例子,并根据您的具体要求进行构建.简单的方法是允许每个视图只使用MyClass模型.但是,这变得非常不灵活,所以我要做的就是保持设计的灵活性.我将假设有一些数据要传递给许多视图(部分或全部). 创建表示要传递给多个视图的数据的类: /Models/SharedData.cs namespace MyProject.Models { public class SharedData { public DateTime Birthday { get; set; } } } 为模型创建一个需要SharedData类的接口. /Models/ISharedDataViewModel.cs namespace MyProject.Models { public interface ISharedDataViewModel { public SharedData Data { get; set; } } } 更新Home IndexViewModel以使用接口和shareddata /Models/Home/IndexViewModel.cshtml namespace MyProject.Models.Home { public class IndexViewModel: ISharedDataViweModel { public string Message { get; set; } public ShardedData Data { get; set; } } } 创建一个知道如何显示共享数据的部分视图 /Views/Shared/SharedDataView.cs(在Razor MVC3中) @Model MyProject.Models.ISharedDataViewModel //strongly-typed partial view @if (model != null && model.Data != null) { <h3>@model.Data.Birthday.ToString()</h3> } 更新“主页索引”页面以调用“部分”视图 /Views/Home/Index.cshtml(在Razor MVC3中) @Model MyProject.Models.Home.IndexViewModel //strongly-typed view <h1>@model.Message</h1> @Html.Partial("SharedDataView",model) 现在,如果页面模型实现了ISharedDataViewModel,那么任何页面都可以调用局部视图. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在IIS 10上承载ASP.NET Web API 2项目
- asp.net-mvc-3 – aspnetdb.mdf来自我的ASP.NET MVC应用程序
- asp.net-mvc-3 – 如何让IIS Express使用64位第三方DLLS启动
- 在IIS Express中无法启动asp.net核心Web应用程序
- 在asp.net中发布回发和浏览器后退按钮问题
- .net – ActionFilterAttribute不重定向
- asp.net-mvc – MVC3部署依赖问题
- asp.net-mvc-3 – 如何重置/获取razor intellisense和语法高
- asp.net-mvc – 在ASP.NET MVC中,response.redirect如何工作
- asp.net-mvc – 不要在JSON中序列化Entity Framework类引用
- asp.net-mvc-4 – 未终止字符串常量MVC4 Razor视
- asp.net – 如何使用HTML5电子邮件输入类型与服务
- ASP.Net身份注销
- asp.net – 如何让Html.RenderAction在帖子上调用
- ASP.NET MVC 6项目中的LIB文件夹
- 如何在asp.net中的gridview中添加带有按钮的列?
- asp.net-core – 如何将IHttpContextAccessor注入
- asp.net – 如何使用javascript控制系统卷
- asp.net – 如何导入mdb到sql server
- asp.net-mvc – 如何在ASP.NET MVC中维护Html.Ch