Nul*_*ter 0 asp.net-mvc asp.net-mvc-3
我正在使用mysql数据库开发MVC应用程序.
我通过SO和其他网站搜索了很多关于架构/结构的信息.我发现了很多类似的问题,但我仍然有疑问.
在我的应用程序中有一个类别部分; 结构如下所示:
视图:
类别 - (下面列出的类别文件夹中的视图)
CreateCategory
DeleteCategory
ManageCategory
Run Code Online (Sandbox Code Playgroud)
控制器:
CategoryController - (下面列出的动作名称)
CreateCategory
DeleteCategory
ManageCategory
Run Code Online (Sandbox Code Playgroud)
型号:这是我怀疑的地方.我有一个名为CategoryModels的模型,但我不知道我是否以正确的方式做事.我不知道应该在哪里放置服务功能 - 例如我将函数用于创建或删除类别.
我所做的是在CategoryModel.cs中创建一个CategoryServices类并在其中编写函数.DAL文件放在应用程序代码文件夹中,因此要访问数据库,该函数将创建一个DAL对象并调用它.这是正确的方法吗?
在CategoryModels.cs中
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Web.Mvc;
using System.Web.Caching;
namespace TraktorumMVC.Models
{
public class CategoryModels // contain properties for the 3 views (CreateCategory,DeleteCategory and ManageCategory
{
public IEnumerable<SelectListItem> CategoryList { get; set; }
public IEnumerable<SelectListItem> AvailableCategories { get; set; }
//etc..........
}
public class CategoryServices // this class contain all service functions related to categories
{
public int RemoveCategory(int categoryId) // this will remove a category
{
int status = -1;
try
{
string query = Resources.Queries.RemoveCategory;
DAL objDAL = new DAL(); //DAL file is in Appcode folder. IS this right way
string[] inParamNameArray = { "Id"};
string[] inParamValueArray = { categoryId.ToString()};
object[] inParamTypeArray = { DbType.Int32 };
status =Convert.ToInt32( objDAL.ExecuteScalar(query, inParamNameArray, inParamValueArray, inParamTypeArray, true));
}
catch (Exception ex)
{
DeveloperLog.WriteExceptionLog(ex, "CategoryServices.RemoveCategory");
}
return status;
}
public bool InsertCategory(int parentCategoryId, string icon, string name)
{
//bla bla
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?这打破了模型概念吗?
ASP.NET MVC中的"模型"不是非常规范的,并且肯定比视图或控制器更少规范.
也就是说,你的模型不一定是正确或错误的方式,但人们会采取一些流行/常用的方法:
在您的情况下,如果可以,我建议使用ORM来处理类别的持久性.如果您当前的DAL不仅仅是持久性,那么我建议您将其分离到具有相应接口的服务,您的控制器可以获取对该应用程序的引用并用于驱动您的应用程序.
| 归档时间: |
|
| 查看次数: |
870 次 |
| 最近记录: |