下面两种将参数传递给 Controller 操作的方法有什么区别?我应该什么时候使用其中之一?
第一种方法:
@using (Html.BeginForm("ActionName", "ControllerName", new {orderId = Model.orderID, productId = Model.productID}, FormMethod.Post))
{
...
}
第二种方法:
@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post))
{
...
@Html.Hidden("orderId", model.orderID)
@Html.Hidden("productID", model.productID)
}
谢谢。
最佳答案
第一种方法是使用 FormExtensions.BeginForm将值附加到表单提交 url 的方法覆盖:
<form action="/ControllerName/ActionName?orderId=<Model.orderID>&productId=<Model.productID>" action="post">
这里的参数可以从路由参数集合中获取。
第二种方法将简单地添加两个隐藏字段,它们可以绑定(bind)到传入和传出 Controller 操作的模型对象。
关于asp.net-mvc - Html.BeginForm RouteValueDictionary 与 Html.Hidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25180091/