栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将数据传递到ASP.NET MVC中的母版页

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将数据传递到ASP.NET MVC中的母版页

如果您希望视图具有强类型的视图数据类,则这可能对您有用。其他解决方案可能更 正确, 但这是设计和实用性恕我直言之间的良好平衡。

母版页采用强类型的视图数据类,该类仅包含与之相关的信息:

public class MasterViewData{    public ICollection<string> Navigation { get; set; }}

使用该母版页的每个视图都采用强类型化的视图数据类,该类包含其信息并从母版页视图数据派生:

public class IndexViewdata: MasterViewData{    public string Name { get; set; }    public float Price { get; set; }}

由于我不希望各个控制器了解将母版页数据放在一起的任何信息,因此我将该逻辑封装到一个传递给每个控制器的工厂中:

public interface IViewDataFactory{    T Create<T>()        where T : MasterViewData, new()}public class ProductController : Controller{    public ProductController(IViewDataFactory viewDataFactory)    ...    public ActionResult Index()    {        var viewData = viewDataFactory.Create<ProductViewData>();        viewData.Name = "My product";        viewData.Price = 9.95;        return View("Index", viewData);    }}

继承与主视图之间的匹配关系很好,但是在渲染部分/用户控件时,我会将其视图数据组合到页面视图数据中,例如

public class IndexViewdata: MasterViewData{    public string Name { get; set; }    public float Price { get; set; }    public SubViewData SubViewData { get; set; }}<% Html.RenderPartial("Sub", Model.SubViewData); %>

这只是示例代码,无意按原样编译。 专为ASP.Net MVC 1.0设计。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/421469.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号