Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc asp.net mvc子操作_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc asp.net mvc子操作

Asp.net mvc asp.net mvc子操作,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我曾多次使用asp.NETWeb表单,但这是我的第一个asp.NETMVC应用程序。我想做的是使用子视图呈现一些控件,这些控件(相对地)独立于页面进行显示和操作 例如,假设我有一个日历“gadget”,它使用服务器端逻辑在每次单击日期时显示事件列表,完全独立于页面其余部分的处理 在web表单中,我可以创建一个ASCX(web用户控件)。当在控件中单击某个日期时,整个页面将被发回,但我可以将单击处理放在calendar控件中;页面的其余部分将自动往返,而无需输入任何特定逻辑来处理日历控件的回发 使

我曾多次使用asp.NETWeb表单,但这是我的第一个asp.NETMVC应用程序。我想做的是使用子视图呈现一些控件,这些控件(相对地)独立于页面进行显示和操作

例如,假设我有一个日历“gadget”,它使用服务器端逻辑在每次单击日期时显示事件列表,完全独立于页面其余部分的处理

在web表单中,我可以创建一个ASCX(web用户控件)。当在控件中单击某个日期时,整个页面将被发回,但我可以将单击处理放在calendar控件中;页面的其余部分将自动往返,而无需输入任何特定逻辑来处理日历控件的回发

使用MVC,如果我将“单击日期”操作路由到日历控制器,则该控制器不知道它嵌入的页面,因此它只能绘制日历,而不能绘制页面的其余部分。我能想到的唯一解决办法(除了ajax)是让所属页面的控制器处理所有日历单击操作,并在呈现整个页面的视图之前将它们传递到日历控制器


希望我错过了一些明显的东西。

看看局部视图和渲染

这里有一些URL让你开始


您可以使用iframe在主页中显示日历。您的主页可以有URL
http://example.com/main
并且iframe可以有URL
http://example.com/calendar/today
。通过在链接上设置
target
属性,iframe内的链接可以仅重新加载iframe,也可以重新加载主页。同样,主页上的链接也可以指向iframe


由于主页和iframe都来自您的服务器,因此不会出现任何跨域问题,因此您可以执行所需的任何脚本。

是的,这是一个问题。另外,如果你需要像母版页一样重复使用布局,试着构建一个模板,这基本上是一样的。感谢你的回复,我已经查看了URL并阅读了更多内容,但我仍然缺少一些东西。我了解如何使用局部视图和子操作最初呈现日历控件的视图,但单击日历中的日期时会发生什么情况?这个单击操作应该被发送到日历控制器(这样它就可以在该日期检索项目),但是日历控制器不能呈现页面的其余部分,不是吗?。我看到的所有子视图示例都只生成静态内容或导航链接,而不是“回发”控制。您可能需要考虑使用ajax来更新视图的日历部分page@Andy-丹尼尔是对的。你仍然像一个webforms开发人员一样思考,没有代码隐藏。所有“点击”都指向一个URL,而不是代码隐藏方法。因此,您可以将表单发布到URL或在URL上调用ajax(控制器操作),好的,谢谢。我读了更多的书,得出的结论是ajax可能是唯一的解决方案。我非常熟悉http等的勇气,知道幕后有多少“神奇”的东西来支持web表单ascx回发的东西。但很明显,要放弃一些让这个案子如此容易处理的东西仍然很困难。