我在asp.net mvc 3中使用ViewModel。
在我的情况下,我有一个控制器,用于启动连接到View的ViewModel。
如果URL中没有附加变量DateForLookUp
,则控制器使用DateTime.UctNow初始化ViewModel,否则使用该变量。
我需要在视图上创建链接。当用户点击该链接时,我必须使用DateForLookUp
值并添加或减去一天。
我的问题:
查看
@Html.ActionLink("Next Day", "Daily")
@Html.ActionLink("Previous Day", "Daily")
CONTROLLER
public ActionResult Daily(string dateForLookUp)
{
DateTime dateTimeForLookUp;
if (string.IsNullOrWhiteSpace(dateForLookUp))
dateTimeForLookUp = DateTime.UtcNow;
else
dateTimeForLookUp = DateTime.Parse(dateForLookUp);
var eventsInDate = eventAggregateService.FindAllForDate(dateTimeForLookUp);
EventsAggregateDailyListViewModel eventDailyVM = new EventsAggregateDailyListViewModel();
eventDailyVM = new EventsAggregateDailyListViewModelBuilder().Build(eventDailyVM, dateTimeForLookUp);
return View(eventDailyVM);
}
答案 0 :(得分:2)
在我看来(在实践中),我会在服务层中放置任何和所有逻辑。
我将我的MVC应用程序分成几个不同的项目,以保持所有层分离:
我还有一组打包到NuGet包中的类,我可以在需要时添加到我的应用程序中,即(对于此示例):
我的控制器除了从服务层获取ViewModel以发送到视图然后从视图发送后接收数据并将其发送到服务层以进行验证,处理,保存回存储库,其他操作时什么都不做商业逻辑等。