ASP.NET MVC结构以及如何使用Actions和Controllers

时间:2011-10-05 12:34:34

标签: asp.net-mvc ajax vb.net model-view-controller

我正在ASP.NET MVC结构中开发一个应用程序。 我想知道,我正在尝试创建一个只有一个页面的网站,它左侧有一个导航栏(这是一个用户输入列表),然后是中间的主要内容。

我的问题是,我可以将导航栏(用户输入列表)设置为静态,并根据用户输入使用异步AJAX回发更改主要内容吗?根据用户输入,我会有多个控制器,它们会根据主要内容设置不同的结果。

我如何绕过这样做,部分视图和使用asyncpostback调用操作?

1 个答案:

答案 0 :(得分:2)

是的,我会按照你的建议完成 - 让行动呈现PartialView([name])并使用jQuery的ajax来获取内容。

然后,您可以使用jQuery将html注入内容面板。

如果您需要将css添加到页面的head部分,那么它可能会变得有趣。

但是,通过努力使用单个CSS或至少一组CSS文件,您可以回避这一点。

但请注意,如果动态注入的内容具有表单,则表单后备文件会变得复杂。您需要劫持表单提交过程并将其转换为另一个ajax调用以将生成的html放入您的内容面板中 - 您甚至可能需要手动提交表单,因为我认为您不能触发表单提交Ajax操作。

我已经使用命名iframe执行了类似的操作(不一定需要脚本),因为您可以使用等于IFrame名称的form呈现target;并且它意味着iframe内容可以是完整视图而不是部分视图(因此可以完全控制其自己的脚本和css)。当然,您在主机页面和该帧之间共享数据时会遇到问题。