объект передается в действие в виде строки - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть форма со скрытым полем, в которой хранится 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 Ответ

1 голос
/ 27 сентября 2011

Нет, простого способа нет, если RouteValues сложный объект. Вам нужно будет сериализовать объект в некоторое текстовое представление в этом скрытом поле, а затем десериализовать его обратно в действии вашего контроллера. Вы можете взглянуть на Html.Serialize помощника MvcContrib.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...