ASP.NET MVC2 - 将参数传递给控制器
这是我在大学做的一个项目。我们使用 ASP.NET MVC2 构建一个网站的迷你原型,只是为了展示我们可以做什么。
现在,我有一个名为 ItemController.cs
的控制器、一个视图 Item/Index.aspx
、一个模型 Item.cs
和一个 ViewModel ViewItems.cs
。我使用 ViewModel 将信息从控制器传递到视图。我的问题是 - 如何调用带有参数的控制器方法?目前,我使用
Html.ActionLink("View Event Items", "Index", "Item")
指向 ItemController
的 Index()
方法。假设我希望它采用 int
参数 (Index(int eventId)
) 我将如何编写 ActionLink 来将参数传递给它?
另外,如果我对这些东西的运作方式有任何错误,请随时指出。
This is for a project I'm doing in the university. We're using ASP.NET MVC2 to build a mini-prototype of a website just to show what we can do.
Now, I have a controller called ItemController.cs
, a view Item/Index.aspx
, a model Item.cs
and a ViewModel ViewItems.cs
. I use the ViewModel to pass information to the view from the controller. My question is - how do I call a controller method with parameters? Currently, I use
Html.ActionLink("View Event Items", "Index", "Item")
which points to ItemController
's Index()
method. Say I want it to take an int
parameter (Index(int eventId)
) How would I write the ActionLink to pass the parameter to it?
Also, if I have any errors in how I think this stuff works, please feel free to point them out.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用routevalues对象(或RouteValuesDictionary)将值传递给您的操作。
在您的示例中,它看起来像这样:
...其中 2 是您的事件 ID。第二个空对象(new {})用于 html 属性。 Nate 的答案很接近,但我不认为存在将routevalues 对象作为第二个参数的重载。
You'll need to use the routevalues object (or RouteValuesDictionary) to pass values to your action.
In your example it would look like this:
...where 2 is your event id. The second empty object (new {}) is for html attributes. Nate's answer is close, but I don't think there is an overload that takes a routevalues object as the second parameter.
我认为这
应该能让你到达你想去的地方附近。
I think that
should get you in the vicinity of where you're looking to go.