【转自】: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. php验证输入字符串中含有非法字符

    $pattern = "/(&|"|<|>|')+/";  preg_match($pattern, $media_name, $matches);  ...

  2. Jquery的$命名冲突

    在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg')的写法.然而,当我们引入多个js库后,在另外一个js库中 ...

  3. How to Analyze Java Thread Dumps--reference

    原文地址:http://architects.dzone.com/articles/how-analyze-java-thread-dumps The Performance Zone is pres ...

  4. svn :Can't connect to host *.*.*.*': 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    Can't connect to host *.*.*.*': 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败. -------------------------------- ...

  5. 常用免费快递查询API对接案例

    现在许多电商公司和ERP都会寻找比较适用的集成快递查询接口,减少对接难度,现在整理一下常用的免费快递查询接口,并附上调用案例,如果有觉得不对的地方,望能够一起沟通探讨! 一.快递查询接口 目前有提供免 ...

  6. 学习strcat与strcpy

    前几天刚有点认识了strlen和sizeof,今天又有点认识了strcpy和strcat. 在vc2010环境下 1 strcpy strcpy(p,q),p要么为数组,要么为空指针,要是为空指针操作 ...

  7. C语言---字符

    1.三元符(三字母词):由三个字符组合起来代表其他字符,三元符可以在没有一些字符时使用 ??( [ ??) ] ??! | ??< { ??> } ??' ^ ??= # ??/ \ ?? ...

  8. Unit Testing PowerShell Code with Pester

    Summary: Guest blogger, Dave Wyatt, discusses using Pester to analyze small pieces of Windows PowerS ...

  9. php 首页定时生成静态页面

    往往首页的js,商务通代码加的太多,导致页面访问速度变慢,可以把首页有动态变为静态进行访问,访问速度会有所提升,不过如果更新首页数据,并不能及时更新,而是你规定的时间内固定更新一次 代码如下: < ...

  10. (ASP.net)利用Application对象制作简单聊天室

    1.共四个页面,Default.aspx默认主页,Default2.aspx聊天室 default3.aspx显示用户列表,default4.aspx显示聊天内容,添加一个Global.asax全局程 ...