ili*_*ica 5 asp.net-mvc code-organization
我刚刚完成了我的第一个ASP.NET MVC(2)CMS.下一步是构建将显示CMS数据库中数据的网站.这是网站设计:
http://img56.imageshack.us/img56/4676/portal.gif http://img56.imageshack.us/img56/4676/portal.gif
#1(红框) - 显示文章类别.视图模型:
public class CategoriesDisplay
{
public CategoriesDisplay() { }
public int CategoryID { set; get; }
public string CategoryTitle { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
#2(布朗框) - 显示最后x篇文章; 从绿箱#3中跳过那些.视图模型:
public class ArticleDisplay
{
public ArticleDisplay() { }
public int CategoryID { set; get; }
public string CategoryTitle { set; get; }
public int ArticleID { set; get; }
public string ArticleTitle { set; get; }
public string URLArticleTitle { set; get; }
public DateTime ArticleDate;
public string ArticleContent { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
#3(绿色框) - 显示最后x篇文章.使用与棕色框#2相同的ViewModel
#4(蓝色框) - 显示即将发生的事件列表.用途dataContext.Model.Event为视图模型
方框#1,#2和#4将在整个网站上重复,它们是Master Page的一部分.所以,我的问题是:将这些数据从Model转移到Controller并最终转移到View页面的最佳方法是什么?
谢谢,Ile
编辑:
如果您的答案是#1,那么请解释如何为母版页制作控制器!
编辑2:
在本教程中描述了如何使用抽象类将数据传递到母版页:http://www.asp.net/LEARN/mvc/tutorial-13-cs.aspx
在"清单5 - Controllers\MoviesController.cs"中",使用LINQ直接从数据库检索数据,而不是从存储库中检索数据.所以,我想知道这是否只是在本教程中,或者这里有一些技巧,存储库不能/不应该使用?
要将数据获取到我的母版页:
我将为每个部分创建视图、视图模型和操作。然后调用Html.RenderAction(...)例如:
CategoriesDisplay.aspx我将仅使用 redbox 的 html创建。我会通过你的CategoriesDisplay模型。然后在我的控制器中:
public class CategoryController : Controller
{
public ActionResult DisplayCategories()
{
var model = new CategoriesDisplay();
...
return View(model);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的母版页中:
<% Html.RenderAction<CategoryController>(c => c.DisplayCategoreis()); %>
Run Code Online (Sandbox Code Playgroud)
这将在母版页中内嵌显示类别显示视图。这反过来又允许您拥有 SOC(关注点分离)、干净且可管理的代码。
| 归档时间: |
|
| 查看次数: |
4550 次 |
| 最近记录: |