2011-09-27 4 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 도우미를 살펴보십시오.

관련 문제