控制器和视图之间的关系

时间:2011-04-05 15:01:25

标签: asp.net-mvc

我是mvc,mvp或者你想称之为的新手。现在我尝试实现一个ReservationController,用户首先选择一个日期,然后获取一个合适的时间建议列表。您应该知道,建议取决于所选日期。这是我的问题/问题开始的地方。我应该:

1)在View界面中放置一个事件,如DateChanged,然后在控制器中订阅它?

2)当所选日期发生变化时,从我的asp页面调用控制器上的UpdateSuggestions。 (然后我必须公开控制器方法)

或者

3)更新控制器构造函数中的建议。

关心和请求帮助

埃里克

5 个答案:

答案 0 :(得分:7)

您需要摆脱驱动ASP.NET Web表单的控制事件思维框架。虽然从技术上讲可以通过这种方式完成任务,但我建议采用不同的方式。

您需要将视图返回给用户,以便他们在表单中输入日期。然后,他们将表单发布回服务器,另一个操作方法处理此帖子。此方法获取时间建议列表,并返回以这些时间为模型的视图。

在这里看看有关MVC基础知识的一些不错的视频:http://www.asp.net/mvc

答案 1 :(得分:1)

以下是ASP.Net MVC的一些很好的例子,对于刚刚入门的人来说,这是一个很好的阅读。

http://www.asp.net/mvc

http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-cs

这两个样本包含了一步一步创建MVC项目的书籍:

http://nerddinner.codeplex.com/

http://www.asp.net/mvc/samples/mvc-music-store

这可能无法直接回答您的问题但是,通过这些示例应该有助于明确MVC如何工作,特别是如何在ASP.Net中使用它。 : - )

这里还有关于MVC模式的一些背景知识。

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

http://msdn.microsoft.com/en-us/library/ff649643.aspx

答案 2 :(得分:0)

我认为你误解了MVC是如何工作的。

如果您不清楚MVC如何运作,那么值得查看nerd dinnerScott Gu's blog之类的内容。

您可以将日期链接到下面的操作来处理:

[HttpGet]
public ActionResult YourAction(DateTime date)
        {
            // Add action logic here
            Manager suggestions = new Manager();
            var suggestions =suggestions.UpdateSuggestions(date)

            // create view model
            MyModel model= new MyModel(suggestions);
            return View(model);
        }

答案 3 :(得分:0)

您应该在视图中放置一个链接或表单,指向将日期传递给控制器​​中的操作的URL。
此操作应将日期作为参数,获取该日期的数据,并将其传递给呈现数据的单独视图。


您应该学习HTTP和网页的基础知识,以及ASP.Net MVC的基础设计 在您不理解的框架或系统中编写代码是一种令人沮丧和灾难的方法。

答案 4 :(得分:0)

抱歉,但您对asp.net mvc的了解非常差。更好地获得一些更好的知识,或者你不能使它工作。但无论如何

1)mvc中的视图中不存在事件 2)View不会在控制器上调用contstructor 3)看前两个