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<Ethos.Xalent.Site.Core.DTO.EasyCrmAddContactInAccountDetailDTO>" %>
 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>

 

 

posted on 2010-08-30 10:50  高山流水2012  阅读(3089)  评论(4编辑  收藏  举报