【转自】:http://hi.baidu.com/honfei/blog/item/a7cdb7dd47de86d28d1029e5.html
示例一:
ViewData传值.
HomeController.cs Co
de:
结果:在页面上显示 Welcome to ASP.NET MVC!
示例二:
带参数传值.
URL Routing规则:
访问:/home/index/hello?paraint=520¶str=world
显示: hello 520 world
访问:/home/index/hello
显示:hello (null) (null)
示例三:
强类型传值:
![](https://i-blog.csdnimg.cn/blog_migrate/3df860cb2565cfcebc5910e90034d0c8.jpeg)
public ActionResult Index()
{
ViewData[ "Title" ] = "Home Page" ;
ViewData[ "Message" ] = "Welcome to ASP.NET MVC!" ;
return View();
}
Views/Home/Index.aspx Code:
{
ViewData[ "Title" ] = "Home Page" ;
ViewData[ "Message" ] = "Welcome to ASP.NET MVC!" ;
return View();
}
<asp:Content ID=
"indexContent" ContentPlaceHolderID=
"MainContent" runat=
"server" >
<p>
<%= Html.Encode(ViewData[ "Message" ]) %>
</p>
</asp:Content>
<p>
<%= Html.Encode(ViewData[ "Message" ]) %>
</p>
</asp:Content>
结果:在页面上显示 Welcome to ASP.NET MVC!
示例二:
带参数传值.
URL Routing规则:
routes.MapRoute(
"Default" , // Route name
"{controller}/{action}/{param}" , // URL with parameters
new { controller = "Home" , action = "Index" , param = "" } // Parameter defaults
);
HomeController.cs Code:
"Default" , // Route name
"{controller}/{action}/{param}" , // URL with parameters
new { controller = "Home" , action = "Index" , param = "" } // Parameter defaults
);
public ActionResult Index(
string param,
int? paraInt,
string paraStr)
{
ViewData[ "Title" ] = "Home Page" ;
ViewData[ "Message" ] = "Welcome to ASP.NET MVC!" ;
ViewData[ "Param" ] = param;
ViewData[ "ParaInt" ] = paraInt;
ViewData[ "ParaStr" ] = paraStr;
return View();
}
Views/Home/Index.aspx Code:
{
ViewData[ "Title" ] = "Home Page" ;
ViewData[ "Message" ] = "Welcome to ASP.NET MVC!" ;
ViewData[ "Param" ] = param;
ViewData[ "ParaInt" ] = paraInt;
ViewData[ "ParaStr" ] = paraStr;
return View();
}
<asp:Content ID=
"indexContent" ContentPlaceHolderID=
"MainContent" runat=
"server" >
<p>
<%= Html.Encode(ViewData[ "Message" ]) %>
</p>
<p>
<%= Html.Encode(ViewData[ "Param" ]) %>
</p>
<p>
<%= Html.Encode(ViewData[ "ParaInt" ] ?? ( object ) "(null)" )%>
</p>
<p>
<%= Html.Encode(ViewData[ "ParaStr" ] ?? ( object ) "(null)" )%>
</p>
</asp:Content>
结果:
<p>
<%= Html.Encode(ViewData[ "Message" ]) %>
</p>
<p>
<%= Html.Encode(ViewData[ "Param" ]) %>
</p>
<p>
<%= Html.Encode(ViewData[ "ParaInt" ] ?? ( object ) "(null)" )%>
</p>
<p>
<%= Html.Encode(ViewData[ "ParaStr" ] ?? ( object ) "(null)" )%>
</p>
</asp:Content>
访问:/home/index/hello?paraint=520¶str=world
显示: hello 520 world
访问:/home/index/hello
显示:hello (null) (null)
示例三:
强类型传值:
新建一个xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<item name="Sea" >
<animal>Fish</animal>
<animal>Shrimp</animal>
<animal>Crab</animal>
</item>
<item name="Sky" >
<animal>Bird</animal>
<animal>Man</animal>
</item>
</root>
新建一个类读取xml数据.
<root>
<item name="Sea" >
<animal>Fish</animal>
<animal>Shrimp</animal>
<animal>Crab</animal>
</item>
<item name="Sky" >
<animal>Bird</animal>
<animal>Man</animal>
</item>
</root>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Web.Hosting;
namespace ViewData.Models
{
public class Space
{
public string Name { get ; set ; }
public string [] Animal { get ; set ; }
private static Space space;
public IEnumerable<Space> GetSpace()
{
XDocument xml = XDocument.Load(HostingEnvironment.MapPath("~/App_Data/Space.xml" ));
IEnumerable<Space> results = from p in xml.Root.Elements("item" )
select new Space
{
Name = p.Attribute("name" ).Value,
Animal = p.Elements("animal" ).Select(r => r.Value).ToArray()
} ;
return results;
}
public static Space Instance
{
get
{
if (space == null )
{
space = new Space();
}
return space;
}
}
}
}
在HomeController内添加Action:
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Web.Hosting;
namespace ViewData.Models
{
public class Space
{
public string Name { get ; set ; }
public string [] Animal { get ; set ; }
private static Space space;
public IEnumerable<Space> GetSpace()
{
XDocument xml = XDocument.Load(HostingEnvironment.MapPath("~/App_Data/Space.xml" ));
IEnumerable<Space> results = from p in xml.Root.Elements("item" )
select new Space
{
Name = p.Attribute("name" ).Value,
Animal = p.Elements("animal" ).Select(r => r.Value).ToArray()
} ;
return results;
}
public static Space Instance
{
get
{
if (space == null )
{
space = new Space();
}
return space;
}
}
}
}
public ActionResult About()
{
ViewData["Title" ] = "About Page" ;
return View(Space.Instance.GetSpace());
}
在About.aspx.cs后天修改如下.
{
ViewData["Title" ] = "About Page" ;
return View(Space.Instance.GetSpace());
}
public partial class About : ViewPage<IEnumerable<Space>>
About.aspx调用数据:
<%foreach (var p in ViewData.Model){ %>
<ul>
<li><%=p.Name %>
<ul>
<%foreach (string r in p.Animal){ %>
<li><%=r%></li>
<%} %>
</ul>
</li>
</ul>
<%} %>
结果:
<ul>
<li><%=p.Name %>
<ul>
<%foreach (string r in p.Animal){ %>
<li><%=r%></li>
<%} %>
</ul>
</li>
</ul>
<%} %>
![](https://i-blog.csdnimg.cn/blog_migrate/3df860cb2565cfcebc5910e90034d0c8.jpeg)
示例四:
表单的值回传给服务器.
新建一个UserM类:UserM.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ViewData.Models
{
public class UserM
{
public string Name { get ; set ; }
public string Password { get ; set ; }
private static UserM user;
public static UserM Instance
{
get
{
if (user == null )
{
user = new UserM();
}
return user;
}
}
}
}
HomeControllers添加Action
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ViewData.Models
{
public class UserM
{
public string Name { get ; set ; }
public string Password { get ; set ; }
private static UserM user;
public static UserM Instance
{
get
{
if (user == null )
{
user = new UserM();
}
return user;
}
}
}
}
[AcceptVerbs("GET")] //GET调用
public ActionResult Form()
{
return View(UserM.Instance);
}
[ActionName("Form"), AcceptVerbs("POST")]//POST调用
public ActionResult SaveForm()
{
UpdateModel(UserM.Instance, new [] { "Name" , "Password" } );
return View(UserM.Instance);
}
public ActionResult Form()
{
return View(UserM.Instance);
}
[ActionName("Form"), AcceptVerbs("POST")]//POST调用
public ActionResult SaveForm()
{
UpdateModel(UserM.Instance, new [] { "Name" , "Password" } );
return View(UserM.Instance);
}
Form.aspx.cs后台添加强类型引用
public partial class Form : ViewPage<UserM>
Form.aspx
<p>
<%=Html.Encode(ViewData.Model.Name) %><br />
<%=Html.Encode(ViewData.Model.Password) %>
</p>
<%Html.BeginForm();%>
Name:<%=Html.TextBox("Name" )%>
Password:<%=Html.Password("Password" ) %>
<input type="submit" value ="Submit" />
<%Html.EndForm(); %>
结果:在form表单的内容将显示到当前页面
<%=Html.Encode(ViewData.Model.Name) %><br />
<%=Html.Encode(ViewData.Model.Password) %>
</p>
<%Html.BeginForm();%>
Name:<%=Html.TextBox("Name" )%>
Password:<%=Html.Password("Password" ) %>
<input type="submit" value ="Submit" />
<%Html.EndForm(); %>