2011-09-27 58 views
0

我有一個表單,它有一個隱藏字段,它存儲了一個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被作爲一個字符串,而不是一個對象傳遞。有沒有什麼辦法解決這一問題?

謝謝。

回答

1

不,沒有簡單的方法,如果RouteValues是一個複雜的對象。您必須將該對象序列化爲一些文本表示,然後將其反序列化回控制器操作中。你可以看看MvcContrib的Html.Serialize幫手。

相關問題