欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MVC页面之间参数传递解析

程序员文章站 2023-11-12 18:35:28
关于mvc页面之间的传值,有多种方式,下面,我们就html.renderaction 方式 和 html.renderpartial 方式 来给大家分享一下有什么不同。...

关于mvc页面之间的传值,有多种方式,下面,我们就html.renderaction 方式 和 html.renderpartial 方式 来给大家分享一下有什么不同。

一、html.renderaction 方式页面之间传递参数的方式:

html.renderaction 方式 是访问的另一页面的controller,并将参数传入另一页面的controller中相应的action中的参数中。

例如:我有这么一个controller和action(是一个部分视图的)

public class topcontroller : controller
 {
  // get: top
  public actionresult index(string content)
  {
   viewbag.content = content;
   return partialview();
  }
 }

这个index中,将接到的参数写到viewbag.content中,一面前端view界面中取到。如下:

MVC页面之间参数传递解析

那么我们如何利用html.renderaction方式,将参数传入到这个页面然后展示出来呢?

MVC页面之间参数传递解析

这就是利用html.renderaction方式,传递参数给top 中的 index 页的。

大家学会了嘛?

二、html.renderpartial 方式

html.renderpartial 方式 与 html.renderaction 不同,他没有将参数传递到另一页面的controller对应的action,而是直接传递到另一界面的model中。

所以,html.renderaction传值不会经过controller直接进入model。

下面我们来看一下具体的操作。

1、首先我们简历一个简单的model模型。

public class person
  {
   public string name { get; set; }
   public string sex { get; set; }
  
  }

2、建立界面boot页,(boot自己取的名字) 其 view如下:

MVC页面之间参数传递解析

上面代码中,我们将页面的model制定未person类。在两个<h2>标签中根据类的属性去取相应的值。

建立完这个页面,我们就要向这个页面传值了,那么如何用 html.renderpartial 向其中传值呢? 如下:

MVC页面之间参数传递解析

上述红框中即为用 html.renderpartial 方式传值。

这种方式似乎还有不足的地方,是的,我们不可能每次用html.renderpartial方式传值的时候,都要去建立一个model模型,这样的话几乎是场灾难。那么如何避免呢?

我们用html.renderpartial方式向另一界面传值的理想方式或许是这样的:

MVC页面之间参数传递解析

如上面红框中所示。直接用一个匿名对象将参数包进去,然后传递过去就行,但是,另一个页面是否会接受到呢?

或许,大家早已经测试过了,答案是:不可以。在model中去name和sex,会报错的(相信各位园友们早已实验过了)

那么我们如何改进,能让这个页面可以接受到这种方式的参数传递呢?如下:

MVC页面之间参数传递解析

上述方式去取值,就会取到传递过来的匿名对象的相应属性了。是不是很high啊,以后传值就方便多了。

传递的参数的类型也可以是多种多样,例如:

MVC页面之间参数传递解析

我们加了一个datetime类型的参数,那么另一界面还是一样,照接不误。

MVC页面之间参数传递解析

页面

MVC页面之间参数传递解析

好了,关于mvc页面之间参数传递,就分享到这里了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。