use*_*160 1 model-view-controller
我按照rob conery制作的StoreFront MVC应用程序视频tuturial.我注意到Commerce.MVC.Web引用了Commerce.MVC.Data和Commerce.MVC.Services.这是因为Commerce.MVC.Web需要Commerce.MVC.Data,因为其中定义了实体.什么是仅引用Commerce.MVC.Services的更好方法.我是否需要将实体纳入服务?或任何建议?
粗体文本来自Commerce.MVC.Data:
Commerce.MVC.Data
Commerce.MVC.Services- reference the Commerce.MVC.Data
Commerce.MVC.Web - reference both the Commerce.MVC.Data and Commerce.MVC.Services
Run Code Online (Sandbox Code Playgroud)
这里是CatalogController的示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Commerce.MVC.Data;
using Commerce.MVC.Services;
namespace Commerce.MVC.Web.Controllers {
public class CatalogController : Controller {
#region .ctor
ICatalogService _catalogService;
public CatalogController(ICatalogService catalogService) {
_catalogService = catalogService;
}
#endregion
#region ViewData
/// <summary>
/// Class used for transferring data to the View
/// </summary>
public class CatalogData {
public CatalogData() { }
public CatalogData(List<Category> categories, Category parent, Category child) {
this.Categories = categories;
this.Category = parent;
this.SubCategory = child;
}
public IList<Category> Categories;
//The below is came from Commerce.NVC.Data
public Product Product { get; set; }
public Category Category { get; set; }
public Category SubCategory { get; set; }
}
#endregion
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
编辑回复......
您可以使用该服务,但服务会返回一些内容,而某些内容就是您的实体.为了使您的Web应用程序能够使用这些实体,它需要引用包含实体的类吗?
现在你可以通过返回Anonymous类型来解决这个问题,或者创建你自己的DTO - 但是你会丢失验证以及Entity在其上声明的所有内容.实际上 - 您正在复制代码.
你看到了吗?
| 归档时间: |
|
| 查看次数: |
1338 次 |
| 最近记录: |