none
Recuperar datos de la vista RRS feed

  • Pregunta

  • Amigos a una vista le envio un modelo donde el usuario puede agregar o no datos por ejemplo:

    Tipo       Precio       Libras

    A          $ 2.-

    B          $ 1.50

    C          $ 2.20

    O sea el usuario puede agregar "x" cantidad de libras a alguno de los tipos que luego debo multiplicar por el precio, para usarlo en otro proceso.

    Como puedo recuperar las libras ingresadas en la vista ?

    Pense en cuanto retorna de la vista (post) recorrer mediante un for el modelo pero no se si esto es correcto, no encuentro la forma de hacerlo.

    martes, 27 de agosto de 2013 1:33

Todas las respuestas

  • hola

    esto que planteas en que control estabas pensando representarlo ? crearias una tabla con html en la view

    en donde recorrerias la lista de tipos creando cada row y definiendo un <input type="text">

    para cada row del campo libra, o seria de otra forma

    si lo haces asi podrias ver que id le pones a cada textbox y luego como este retorna en el Request.Form para mapear con el modelo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 27 de agosto de 2013 5:52
  • Yo lo habia hecho asi mediante una table y dentro de un For donde tiene un Id cada item, diferente:

    @Html.DisplayFor(Function(modelItem) currentItem.Name)

    @Html.DisplayFor(Function(modelItem) currentItem.Price)

    @Html.TextBoxFor(Function(modelItem) currentItem.Libras)

    pero no sabria como recorrerlo una vez que retorne o como usar un <input type="text"> como tu me dices...

    martes, 27 de agosto de 2013 11:17
  • La vista la cargo de la siguiente manera:

    <table>

        <th>@Html.DisplayNameFor(Function(model) model.Name)</th>

        <th>@Html.DisplayNameFor(Function(model) model.Price)</th>

        <th>@Html.DisplayNameFor(Function(model) model.Libras)</th>

    For Each item in Model

        Dim currentItem = item

        @<tr>

        <td>@Html.DisplayFor(Function(modelItem) currentItem.Name)</td>

        <td>@Html.DisplayFor(Function(modelItem) currentItem.Name)</td>

        <td>@Html.TextBoxFor(Function(modelItem) currentItem.Name)</td> (aqui coloco un TextBoxFor para que el usuario ingrese la cantidad de libras)

    </table>

    @Using Html.BeginForm()

        @<fieldset>

            <p><input type="submit" value="Continue..." /></p>

        </fieldset>

    End Using

    Hasta aqui todo perfecto, despliega todo bien y el usuario puede llenar los TextBox con la cantidad de libras. Ahora cuando retorno al controlador, intent determiner que ingreso de la siguiente manera:

    dim m as New LisCortesModel With {.id = model.id}

    For Each item in m

         If item.Libras.Length > 0 Then

            tot += item.price * CDec(item.Libras)

        End If

    Next

    Esta última acción es lo que está mal, pero no veo como puedo recorrer el modelo para sumar la cantidad de Libras que ingresó el Usuario, o hay otra forma de hacerlo, no se me ocurre como...

    miércoles, 28 de agosto de 2013 11:28
  • El Usuario puede agregar libras a 1 o mas tipos de carnes, pero no necesariamente a todos.

    Ahora ese total, lo necesito pues luego pasaria a otra pantalla donde se ingresan otros datos, como cantidad de cubiertos, carne cruda utilizada, compra anterior, etc. y luego de un proceso de cálculos, recién lo guarda en la BD, cuyo Id es la fecha del control que se esta realizando.

    Quizás haya otra manera de hacerlo, pero no se como o donde leer donde buscar un ejemplo. Realmente no me gusta adivinar y me siento perdido en esto. Con Visual y Windows Forms, no tengo problema, pero con este tipo de aplicación no he encontrado donde leer para realizer este tipo de procedimiento.

    miércoles, 28 de agosto de 2013 11:45