宝哥软件园

MVC页面间参数传递分析

编辑:宝哥软件园 来源:互联网 时间:2021-09-05

在MVC页面之间传递值的方法有很多。让我们分享一下Html之间的区别。RenderAction和Html.RenderPartial。

I. Html。RenderAction模式在页面之间传递参数的模式:

Html的模式。RenderAction是访问另一个页面的控制器,并将参数传递到另一个页面的控制器中相应操作的参数中。

例如:我有这样一个控制器和动作(这是一个局部视图)

公共类TopController : Controller {//GET: Top public action result Index(字符串内容){ ViewBag.content=content返回partial view();}}在这个Index中,将接收到的参数写入ViewBag.content,并从前面的View界面获取。如下所示:

那么我们如何使用Html呢?RenderAction将参数传递到此页面并显示它们?

这就是如何通过使用Html将参数传递给Top中的Index页面。RenderAction.

你学会了吗?

第二,Html。RenderPartial方式

Html的方式。RenderPartial不同于Html。RenderAction不是将参数传递给对应于另一个页面的控制器的操作,而是直接传递给另一个接口的模型。

因此,Html传递的值。渲染动作不会通过控制器直接进入模型。

我们来看看具体的操作。

1.首先,我们恢复一个简单的模型。

公共类Person {公共字符串Name { get设置;}公共字符串Sex { get设置;} }2.创建接口引导页面(由引导本身命名),其视图如下:

在上面的代码中,我们将页面的模型设置为非Person类。在两个h2标签中,根据类的属性取对应的值。

在创建这个页面之后,我们将向这个页面传递值,那么如何通过Html向它传递值呢。RenderPartial?如下所示:

在上面的红色框中,该值由Html.RenderPartial传递。

这种方式似乎有些缺点。是的,我们不能每次在Html中传递一个值就构建一个模型。RenderPartial,这几乎是一场灾难。那么如何避免呢?

我们通过Html向另一个接口传递值的理想方式。RenderPartial可能如下所示:

如上图红色方框所示。只需将参数包装在一个匿名对象中并传递,但是另一个页面会接受它们吗?

可能大家都已经测试过了,答案是:没有,如果去Model里面的Name和Sex,会报错(相信所有的公园朋友都已经实验过了)

那么如何改进才能让这个页面接受这样传递的参数呢?如下所示:

如果以上述方式取值,将得到传递的匿名对象的对应属性。很高吗?以后传递价值就方便多了。

传递的参数类型也可以变化,例如:

我们添加了一个DateTime类型的参数,所以另一个接口还是一样的,连接是正确的。

页,面,张,版

好了,我们在这里分享一下MVC页面之间的参数传递。

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

更多资讯
游戏推荐
更多+