【转自】: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. eclipse创建多模块maven工程小结

    创建maven工程步骤 1 新建一个maven工程,如下图所示: 2 选择项目名称(或项目目录),如下图所示: 3 填写maven工程相关信息,注意父maven工程的packing方式是pom,如下图 ...

  2. LoadRunner测试问题

    1.关于Error -27791: Error -27790:Error -27740: 错误如下: Action.c(198): Error -27791: Server has shut down ...

  3. json与jsonp区别浅析(json才是目的,jsonp只是手段)

    一言以蔽之,json返回的是一串数据:而jsonp返回的是脚本代码(包含一个函数调用): JSON其实就是JavaScript中的一个对象,跟var obj={}在质上完全一样,只是在量上可以无限扩展 ...

  4. 远程通信Socket

    网络通信高性能的三个主题: 1) 传输:用什么样的通道将数据发送给对方,BIO.NIO或者AIO,IO模型在很大程度上决定了框架的性能: 2) 协议:采用什么样的通信协议,HTTP或者内部私有协议.协 ...

  5. [原]unity中WWW isDone方法只能在主线程中调用

    项目中要使用动态加载,原计划是生成WWW对象后,放到一个容器里.由一个独立线程轮询容器里的对象,如果www.isDone为true时,回调一个接口把结果交给请求方. new Thread( new T ...

  6. hackerrank Day15: Linked List

    #include <iostream> #include <cstddef> using namespace std; class Node { public: int dat ...

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

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

  8. ASP生成静态文件编码为UTF-8格式的HTML文件

    一般在ASP环境下,运行动生静操作时都用到的是FSO,FSO是专门对文件进行操作的一个组件,FSO的编码属性只有三种,系统默认,Unicode,ASCII,并没有utf-8,所以一般中文系统上使用FS ...

  9. Plugin with id 'android-apt' not found

    解决路径: 1.查看miniSDK最外面的build.gradle 添加这句.具体参考一下demo.谢谢

  10. js获取jsp中的变量值

    js获取jsp中的变量值,有两种方式: 1.jsp标签获取属性 var message = '<%=request.getAttribute("message")%>' ...