在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页面之间的参数传递。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。