两个表单(一个在布局中,一个在页面中)如何在asp.net mvc3中处理

时间:2012-04-10 16:07:40

标签: asp.net-mvc-3 forms mobile viewmodel

我正在使用ASP.NET MVC3中的移动网站。我有一个页面,我的标题中有搜索栏。这个标题来自我的布局页面,这是所有其他视图共有的。在我的特定页面中,我有特定于页面的内容(表单)。

enter image description here

对于我的Customer/Add操作,我会将Customer的添加视图返回到我的CustomerViewModel。我将在添加视图中添加表单标记,该表单将在提交表单时发布到HttpPost Add操作方法。那样就好。我的问题是我将如何处理搜索框内容?我相信页面中只允许一个表单。所以,如果我的SearchViewModel被绑定到我的搜索视图(部分),那么我的页面中将会有两个表单。所以我做不到。

我可以通过阅读java脚本中的内容并调用另一个动作来获取搜索结果来处理搜索部分。这是唯一的方法吗?我担心那些禁用了java脚本的设备。我该怎么办 ?请建议

1 个答案:

答案 0 :(得分:1)

没有。页面上可以有多个表单。事实上,你应该在这里。您的添加客户页面应提交1个操作方法,但您的搜索表单应提交给不同的操作方法。

如果您熟悉webforms,那么该框架只允许您在页面上有1个表单,但不是因为HTML需要它。 Webforms需要它,因为它是框架可以跨POST请求(使用ViewState)从各种服务器控件传输所有数据的唯一方式。 Webforms历来不是非常友好的HTML或HTTP。

您不能在HTML中的其他表单中嵌套表单,但在页面上具有多个表单是完全合法的(并且在MVC中推荐)。

对于AJAX,我不担心没有启用javascript的设备。这个星球上只有6或7个人在他们的网络设备上没有javascript,如果有人禁用了javascript,他们无论如何都无法体验99%的其余网络。