【转自】: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. PAT 1016

    1016. Phone Bills (25) A long-distance telephone company charges its customers by the following rule ...

  2. java_泛型,设置类型通配符的上限

    package ming; import java.util.ArrayList; import java.util.Collection; import java.util.List; class ...

  3. 主机开启后,显示器显示NO SIGNAL,无信号

    第一个原因:有可能是主机和显示器的连线接触不良(特别是接口处没有插好或者松动),还有可能这根连接的数据线出现问题,所以才会出现没有信号输入到屏幕,无显示,黑屏,处理方法:重新拨插一下这根连接的数据线, ...

  4. 将HTML表格导出到EXCEL,兼容Firefox,支持中文

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. [转]重新分配内置存储空间 android手机

    本文转自:http://www.in189.com/thread-815721-1-1.html 鉴于有些同学遇到问题了,毕竟步骤繁琐,可能中间会出错,因此推荐用26L       338944    ...

  6. Makefile的规则

    在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则:最基本的编写规则的方法是从最终的源程序文件一个一个的查看源码文件.把它们要生成的目标文件作为目标,而C语言源码文件和源 ...

  7. HTML5 乱记

    HTML5 的文档类型声明可以触发所有具备标准模式的浏览器的标准模式,包括那些对 HTML5 一无所知的浏览器,也就是说,可以在任何网页中都使用 HTML5 文档类型声明 <!DOCTYPE h ...

  8. WindowManage与Window的在Activity的一点小应用

    super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN ...

  9. kettle Add XML 、 XML Join

    1.将文件1.文件2组合成xml文件 文件1 f1;f2;f3 1;张三;24 2;李四;25 文件2 张三;语文;78 张三;数学;88 xml文件 <students> <stu ...

  10. OPENSSL中RSA私钥文件(PEM格式)解析【一】

    http://blog.sina.com.cn/s/blog_4fcd1ea30100yh4s.html 在PKCS#1 RSA算法标准中定义RSA私钥语法为: RSAPrivateKey ::= S ...