我有一个隐藏字段的表单,它存储object
。这个对象是一个RoutesValues(我想存储一个引用,因为当我处理表单时我想重定向到一个路由)。处理表单的操作是:
public ActionResult Añadir(string userName, string codigoArticulo, string resultAction, string resultController, object resultRouteValues, int cantidad)
{
processForm(codigoArticulo, cantidad);
if (!ModelState.IsValid)
TempData["Error"] = @ErrorStrings.CantidadMayorQue0;
if (!string.IsNullOrWhiteSpace(resultAction) && !string.IsNullOrWhiteSpace(resultController))
return RedirectToAction(resultAction, resultController, resultRouteValues);
return RedirectToAction("Index", "Busqueda", new {Area = ""});
}
我的表格是:
@using (Html.BeginForm("Añadir", "Carrito", FormMethod.Get, new { @class = "afegidorCarrito" }))
{
<fieldset>
<input type="hidden" name="codigoArticulo" value="@Model.CodiArticle" />
<input type="hidden" name="resultController" value="@Model.Controller" />
<input type="hidden" name="resultAction" value="@Model.Action" />
<input type="hidden" name="resultRouteValues" value="@Model.RouteValues" />
<input type="text" name="cantidad" value="1" class="anadirCantidad" />
<input type="submit" />
</fieldset>
}
我遇到的问题是resultRouteValues作为字符串而不是对象传递。有什么方法可以解决这个问题吗?
感谢。
答案 0 :(得分:1)
不,如果RouteValues
是一个复杂的对象,就没有简单的方法。您必须将对象序列化为一些文本表示到此隐藏字段中,然后在控制器操作中将其反序列化。你可以看看MvcContrib的Html.Serialize帮手。