如何在asp.net MVC3 razor View中隐藏ViewBag

时间:2011-12-23 10:40:22

标签: asp.net asp.net-mvc-3 viewbag

我使用Html.ActionLink("","",new{id=packageID})从某个视图(比如mainView)渲染新视图
和我的控制器动作(ActionLink传递控制)看起来像
public ActionResult editChecks(int packageID) {return View();}
现在在渲染视图(“editChecks”)我想隐藏packageID,以便我可以通过任何方式使用它(通过将其传递给另一个控制器动作)另一个动作
即我是在View(“editChecks”)中使用表单,该表单将数据提交给某些操作说(action2)


目前我在我的视图中使用这个(“editChecks”)
string pid = Request.Form["packageID"];在我的控制器动作(需要packageID)这样可以长期运行???或者我应该选择什么替代???

1 个答案:

答案 0 :(得分:2)

您可以在方法中声明任何预期的参数。如果未提供默认值,您也可以声明默认值String packageID = "0"

编辑:您的问题令人困惑。如果要在视图上访问它,请使用viewbag。

public ActionResult action2(Int32 packageID) {

  // can use packageID here

 // Or make it accessable on the view
 ViewBag.PackageID = packageID;
  return View();
}

在视图中,您可以通过键入

来访问它
@ViewBag.PackageID

虽然我在某些情况下质疑为什么你的packageID是String。你不应该使用Int32吗?

编辑:继续你的评论,

@Html.Hidden("PackageID", (Int32)@ViewBag.PackageID)

将隐藏页面上的属性。并将传递给任何被调用的提交(在表单中假设)作为名称“PackageID”