热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MVC当页面上有两个以上的Form时的解决方案

1.页面包含多个form,共用一个model这种做法不是很明智,而且当使用到模型验证时,就会出现相互的验证冲突,特别是服务端验证不通过,返回客户端时更是如此。解决的方案,使用Ajax,但是此种

1.页面包含多个form,共用一个model

这种做法不是很明智,而且当使用到模型验证时,就会出现相互的验证冲突,特别是服务端验证不通过,返回客户端时更是如此。

解决的方案,使用Ajax,但是此种方案第一个实现起来不容易,第二个无法充分利用MVC提供的模型验证。

2.使用iframe,页面上包含一个from,多余的form分散到iframe里面,一个ifram一个form。

这种做法可以充分利用MVC提供的模型验证功能,因为我其他页面的验证也用到了模型验证,所以为了保持风格的统一,这里使用iframe来解决问题无疑是比较符合我现有需求的解决方案。

下面是具体的做法:

这是页面中的iframe

 

1       < iframe src = " /CRM/AddContactInAccountDetail?AccountID=<%=Model.Account.AccountID %> "  width = " 100% "  height = " 230px; "  scrolling = " no "  frameborder = " 0 " > iframe >
2 

 

 

这是iframe中的页面:

 

 1  <% @ Page Title = ""  Language = " C# "   Inherits = " System.Web.Mvc.ViewPage "   %>
 2 
 3  DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Strict//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd " >
 4  < html xmlns = " http://www.w3.org/1999/xhtml " >
 5  < head id = " Head1 "  runat = " server " >
 6       < link href = " http://www.cnblogs.com/Content/dashboard.css "  rel = " stylesheet "  type = " text/css "   />
 7       < link href = " http://www.cnblogs.com/Content/ie.css "  rel = " stylesheet "  type = " text/css "   />
 8       < link href = " http://www.cnblogs.com/Content/EasyCrm.css "  rel = " stylesheet "  type = " text/css "   />
 9       < link href = " http://www.cnblogs.com/Content/Site.css "  rel = " stylesheet "  type = " text/css "   />
10       < script src = " /Scripts/MicrosoftAjax.debug.js "  type = " text/Javascript " > script >
11       < script src = " /Scripts/MicrosoftMvcAjax.debug.js "  type = " text/Javascript " > script >
12       < script src = " /Scripts/jquery-1.4.2.min.js "  type = " text/Javascript " > script >
13       < script src = " /Scripts/global.js "  type = " text/Javascript " > script >
14       < script src = " /Scripts/MicrosoftMvcValidation.js "  type = " text/Javascript " > script >
15       < script src = " /Scripts/MicrosoftAjax.js "  type = " text/Javascript " > script >
16  head >
17  < body >
18       < h2 > Add a Contact h2 >
19       < div  class = " AddContact " >
20       <% Html.EnableClientValidation();  %>
21        <%   using  (Html.BeginForm())
22          { %>
23           <%=  Html.ValidationSummary( " Please clear the errors as below and try again! " %>
24       < table >
25       < tr >
26       < td  class = " TDField " >< b >* First Name b > td >< td ><% :Html.TextBoxFor(model => model.Contact.FirstName)  %><% :Html.ValidationMessageFor(model  =>  model.Contact.FirstName,  " * " ) %> td >
27       < td  class = " TDField " >< b >* Last Name b > td >< td ><%=  Html.TextBoxFor(model  =>  model.Contact.LastName) %><% :Html.ValidationMessageFor(model  =>  model.Contact.LastName,  " * " ) %> td >
28       tr >
29       < tr >
30       < td  class = " TDField " >< b >* Email b > td >< td ><% :Html.TextBoxFor(model  =>  model.Contact.Email) %><% :Html.ValidationMessageFor(model  =>  model.Contact.Email,  " * " ) %> td >
31           < td  class = " TDField " >< b > Skype b > td >< td ><% :Html.TextBoxFor(model  =>  model.Contact.Skype) %> td >
32       tr >
33       < tr >
34 
35       < td  class = " TDField " >< b > Phone Number b > td >< td ><% :Html.TextBoxFor(model  =>  model.Contact.PhoneNumber) %> td >< td colspan = 2 > td >
36       tr >
37       < tr >< td colspan = " 4 "  style = " text-align:right " >< input type = " submit "  value = " Save "   class = " update "   />   td > tr >
38       table >
39       <%= Html.HiddenFor(model => model.AccountID)  %>
40       <%= Html.HiddenFor(model => model.Name)  %>
41       <% %>
42       div >
43       < br  />
44       body >

 

 


推荐阅读
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
author-avatar
Mango-家族
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有