如何动态地将多个参数传递到Html.Action中的ASP.NET MVC
问题描述:
我有参数发送类似如何动态地将多个参数传递到Html.Action中的ASP.NET MVC
@Html.Action("actionName", "controlName", new{ pName1 = "pValue1", ... })
但是,pName1 = "pValue1", ...
将拿出ViewBag从控制器。应该用ViewBag封装什么类型的对象,以及如何将路由值设置为Html.Action?
答
对象的类型可以是任何你喜欢的基本类型,例如int,string等...到自定义对象。
如果你有一个值分配给ViewBag如:
public class CustomType {
public int IntVal { get; set; }
public string StrVal { get; set; }
}
...
ViewBag.SomeObject = new CustomType { IntVal = 5, StrVal = "Hello" }
你可以调用它简称为:
@Html.Action("SomeAction", "SomeController", new { myParam = @ViewBag.SomeObject })
而在你的控制器:
public ActionResult SomeAction(CustomType myParam) {
var intVal = myParam.IntVal;
var strVal = myParam.StrVal;
...
}
然而,请注意,您仍然可以从控制器内访问ViewBag,而不必将其传递到路由值中。
这是回答您的问题吗?
+0
它是可用的,我更喜欢将它与Dictionary
目前尚不清楚你在做什么。你是否试图在ViewBag中存储路由值中存储的一些数据? – 2013-05-12 00:14:47
是的。正如你所理解的。 – serefbilge 2013-05-12 00:53:04
做你自己的忙,避免查看袋。视图袋是伟大的,但它是快速和肮脏的答案。我强烈建议使用定义的模型对象来存储控制器传递到视图中的信息。 @model someclass 强类型化视图比依赖视图包的视图更容易维护。 – jcwmoore 2013-05-12 02:41:14