【转自】:QLeelulu
示例一:
ViewData传值.
HomeController.cs Co

de:

public ActionResult Index()
{
     ViewData["Title"] = "Home Page";
     ViewData["Message"] = "Welcome to ASP.NET MVC!";
     return View();
}

Views/Home/Index.aspx Code:

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    <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:

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:

<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>

结果:
访问:/home/index/hello?paraint=520&parastr=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数据.

 
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:

 
public ActionResult About()
{
    ViewData["Title"] = "About Page";

return View(Space.Instance.GetSpace());
}

在About.aspx.cs后天修改如下.

 
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>
<%} %>

结果:

 
示例四:
表单的值回传给服务器.
新建一个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

 
[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);
}

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表单的内容将显示到当前页面

MVC-各种传值方式的更多相关文章

  1. asp.net mvc各种传值方式大全

    MVC 各种传值方式 ViewData传值. HomeController.cs Co de: public ActionResult Index(){       ViewData["Ti ...

  2. dotNET5的MVC页面传值方式总结

    本文大致讲解mvc前后端的传值方式,包括control向view.view向control.以及action向action. 一.经典回顾 二.Controller向View传值 1. ViewBag ...

  3. ASP.NET MVC程序传值方式:ViewData,ViewBag,TempData和Session

    转载原地址 http://www.cnblogs.com/sunshineground/p/4350216.html 在ASP.NET MVC中,页面间Controller与View之间主要有以下几种 ...

  4. MVC&WebForm对照学习:传值方式

    刚从webform开发转到mvc,如果说像路由这样稍微复杂一点的知识点还可以暂时先放一放(前提是默认的路由规则基本满足大部分需求),那有个问题在快速开发中,我想是必须要当即解决的,那就是webform ...

  5. ASP.NET MVC Controller向View传值方式总结

    Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...

  6. MVC:Controller向View传值方式总结

    Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...

  7. MVC 向页面传值方式总结(2)

    MVC 向页面传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通View页面传一个Mo ...

  8. MVC 向页面传值方式总结(1)

    ViewData传值. HomeController.cs Co de: public ActionResult Index() {       ViewData["Title"  ...

  9. MVC中页面的传值方式总结

    MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一:ViewData 获取或设置一个字典,其中包含在控制器和视图之间传递的数据.使用ViewD ...

  10. MVC中页面传值方式总结

    MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一.Controller----------->View(控制器传到视图) 1.View ...

随机推荐

  1. Qt中使用QProcess备份和恢复Mysql数据库

    分类: Qt2011-02-18 21:35 1395人阅读 评论(3) 收藏 举报 qtmysql数据库windowspathcmd . 使用Qt做MySQL数据库开发,遇到需要备份.还原数据库的问 ...

  2. 用eclipse javaEE编程时,不管什么程序都会出现这个错误[SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:bookstore' did not find

    用eclipse javaEE编程时,不管什么程序都会出现这个错误[SetContextPropertiesRule]{Context} Setting property 'source' to 'o ...

  3. 如何强化 TCP/IP 堆栈

    TCP/IP 是一种本质上不安全的协议.但是,Windows 2000 实现可以使您配置其操作以防止网络的拒绝服务攻击.默认情况下,本文中所涉及的一些项和值可能并不存在.在这些情况下,请创建该项.值或 ...

  4. iOS开发之静态库.a的制作教程

    第一种方法:直接新建一个工程. 1.新建项目-> 选择 “Cocoa Touch Static Library” 2.添加库需要包含的源代码,将你工程里的代码添加到打静态库工程里: 3.配置一下 ...

  5. Oracle database server 安装tips

    需要手动解压第二个包的文件合并到第一个包的相同目录中. 以12c为例,需要把 winx64_12102_SE2_database_1of2.zip和winx64_12102_SE2_database_ ...

  6. javascript笔记01:javascript入门介绍

    javascript是实现网页动态效果的基石,在web开发中扮演重要的角色,被广泛应用的各个领域 (1)网页游戏 (2)地图搜索 (3)股市信息查询 (4)web聊天 …………

  7. 对于 NSLayoutConstraint 不执行动画的处理:

    在开发中  我们有时候需要改变某个空间的约束条件 也就是更改NSLayoutConstraint的值  (比如说我想在键盘顶部增加一个工具栏 让工具栏随着键盘的位置变化而变化  有一个动画效果)但是发 ...

  8. SWT中的布局之-----FormLayout(表格式布局)

    表格式(FormLayout类) 表格式布局管理器,通过创建组件各个边的距离来布局组件,和GridLayout一样强大. 用GridLayout与FormLayout都可以实现相同的界面效果,但有时使 ...

  9. 模拟HTTP请求的一个工具

    在看洪大师的Symfony2的视频教程时,提到一个模拟HTTP请求的工具,HTTPie工具,比Curl好用哦

  10. ADO和ADO.NET有什么不同?

    1.一些ADO中常见的类型比如RecordSet在ADO.NET中已经没有了,而且在ADO.NET中也新增了许多在传统ADO中找不到的直接对应的新类型(如数据适配器): 2.传统的ADO主要针对紧密连 ...