在不同的控制器之间共享视图(使用Views/Shared文件夹)是一个好主意吗?我正在创建我的第一个MVC应用程序,它需要一些相互类似的数据。他们“解释”不同的事物(因此将存储在不同的表格中),但他们都有一个ID,名称和状态。因此,我可以使用不同的控制器,然后使用相同的视图在下拉列表中显示数据,允许用户选择一个编辑或通过文本框添加一个新的。显然,我失去了强类型化ViewPage数据的能力,但除此之外,这会被认为是一个好办法,或者我最好为每个控制器创建一个View来使用它?共享视图
Q
共享视图
2
A
回答
1
与我们的项目,我们隔离大多数的对控制器的视图并不重用其中的许多视图,但我们确实使用了大量的用户控件和局部视图这样我们就不会重复自己。这可以让我们保留所有强类型的东西,也许它可能适合您的情况?
1
就个人而言,如果视图的通用性足以用于多个场景,那么我会这样使用它。干!
1
如果您创建自己的中间类来处理视图数据,那么您仍然可以在此场景中使用强类型的ViewPage。
定义自定义类视图页:
public class MyCustomViewData
{
public int Id {get; set;}
public string Name {get; set;}
public int Status {get; set;}
}
从自己的网页中:
<% Html.RenderPartial("MyCustomView", new MyCustomViewData()
{
Id = ViewData.Model.SomeIdField,
Name = ViewData.Model.SomeNameField,
Status = ViewData.Model.SomeStatusField
});
或从控制器
public ActionResult Foo()
{
// get your model data
return View("MyCustomView", new MyCustomViewData()
{
Id = model.SomeIdField,
Name = model.SomeNameField,
Status = model.SomeStatusField
});
}
+0
感谢托德,我特别喜欢来自控制器的人,如果我继续分享观点,那么肯定会实现这一点。 – dave 2008-12-10 00:16:54
0
如果你有一个通用的页面格式,说一个表,那么你可以在共享文件夹中创建一个通用视图。此ViewData必须包含列信息以及数据,以及有关任何链接的一些信息。
细节并不难,如果有很多类似的页面,它可以节省时间。
相关问题
- 1. 共享的共享视图。视图+ ViewModels或UserControls?
- 2. 共享视图模型
- 3. Rails - 抽象/共享视图
- 4. 为共享视图填充模型,在另一个视图中嵌入共享视图
- 5. 监视Windows共享
- 6. 净视图 - 获取只是'共享名'
- 7. ASP.NET MVC视图中的共享数据
- 8. 在多个视图之间共享UIWebView?
- 9. 共享UIWebView的所有视图
- 10. Django在视图之间共享requests.session()
- 11. 共享导轨和JavaScript视图
- 12. Instagram的视频共享Android意图
- 13. 如何管理共享视图?
- 14. 在视图之间共享数据
- 15. 共享文件视图 - 访问控制
- 16. MVC3共享布局 - 局部视图
- 17. 在视图之间共享数据
- 18. 在Laravel 5.4的视图中共享
- 19. 共享的部分视图ActionResult问题
- 20. 在多个视图控制器上共享视图
- 21. MvvmCross - 为多个视图共享视图模型
- 22. 实时会议/共享视图,如Azure上的实时屏幕共享服务?
- 23. Android共享意图
- 24. 意图Android共享
- 25. Twitter图像共享
- 26. 共享视频未播放
- 27. 共享元素转换:图像视图变为白色
- 28. 在两个视图之间共享图像
- 29. Android的共享图像
- 30. 与Ionic共享图像
谢谢DaRKoN_。我在想什么,这就是为什么我开始走这条路,但后来担心我可能错过了一些会让我陷入困境的东西! – dave 2008-12-09 04:41:06