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,那么任何页面都可以调用局部视图. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Asp.net形成认证cookie,不符合IIS7超时
- asp.net-mvc-4 – signalR:/ signalr/hubs不生成
- asp.net – 在webrequest上停止了应用程序池
- asp.net-mvc-3 – 如何将单选按钮与ASP.Net MVC中的模型数据
- asp.net web大文件上传带进度条实例代码
- asp.net-mvc-3 – 使用.SetValidator()时,FluentValidation
- asp.net – 创建新的实体数据模型的麻烦
- asp.net – 无效的回发或回调参数.为什么?
- asp.net – 在css文件中的div.classname
- asp.net-mvc – 如何在ASP.NET MVC w / VB.NET中添加id HTM
- asp.net – Web Api 2:“样例不可用”
- asp.net-mvc – 使用Razor,如何使所有“bool?”
- 在ASP.NET MVC中搜索路径
- asp.net-core – AspNetCore Abstractions无法加
- 带有子项的ASP.NET自定义/用户控件
- asp.net – 限制关于AJAX调用的视图状态信息
- asp.net-mvc-3 – 使用FluentValidation / MVC 3
- asp.net – ModalPopupExtender和验证问题
- asp.net – 为不同项目中的所有Web应用程序网页添
- ASP.Net httpruntime executionTimeout不工作(而
