我正在使用ASP.NET MVC3中的移动网站。我有一个页面,我的标题中有搜索栏。这个标题来自我的布局页面,这是所有其他视图共有的。在我的特定页面中,我有特定于页面的内容(表单)。
对于我的Customer/Add
操作,我会将Customer
的添加视图返回到我的CustomerViewModel
。我将在添加视图中添加表单标记,该表单将在提交表单时发布到HttpPost
Add
操作方法。那样就好。我的问题是我将如何处理搜索框内容?我相信页面中只允许一个表单。所以,如果我的SearchViewModel
被绑定到我的搜索视图(部分),那么我的页面中将会有两个表单。所以我做不到。
我可以通过阅读java脚本中的内容并调用另一个动作来获取搜索结果来处理搜索部分。这是唯一的方法吗?我担心那些禁用了java脚本的设备。我该怎么办 ?请建议
答案 0 :(得分:1)
没有。页面上可以有多个表单。事实上,你应该在这里。您的添加客户页面应提交1个操作方法,但您的搜索表单应提交给不同的操作方法。
如果您熟悉webforms,那么该框架只允许您在页面上有1个表单,但不是因为HTML需要它。 Webforms需要它,因为它是框架可以跨POST请求(使用ViewState)从各种服务器控件传输所有数据的唯一方式。 Webforms历来不是非常友好的HTML或HTTP。
您不能在HTML中的其他表单中嵌套表单,但在页面上具有多个表单是完全合法的(并且在MVC中推荐)。
对于AJAX,我不担心没有启用javascript的设备。这个星球上只有6或7个人在他们的网络设备上没有javascript,如果有人禁用了javascript,他们无论如何都无法体验99%的其余网络。