作者:Mango-家族 | 来源:互联网 | 2023-05-17 08:40
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
>