He MVC 4 aplicación. Aquí es el caso de:

1. Modelo HashKey que contienen 1 clave de la cadena

2. Modelo ModelObjectA – mi objeto de transporte.

3. Clase A – generar la clave única de solicitud y la puso en TempData junto con las ModelObjectA y devuelve esta clave única.

4. Controlador de ControllerModelObjectA – servir como puro controlador.

5. Ver ShowAllModelObjectA página de vista para mostrar la colección de controlador.

Cómo funciona esto. Me han pedido que vaya a ShowAllModelObjectA. El controlador de llamar a la clase a, con el objeto de la transferencia y envía la clave única para el ShowAllModelObjectA. El punto de vista de las llamadas de método get (no HttpGET) el objeto coresponding a la clave recibida del controlador. Esta colección de objetos que se recibe y en @bucle foreach desmonta los objetos y ponerlos en una tabla. Junto con el objeto que en la mesa se puso también de 3 botones que representa las diferentes funciones (Ver detalles, editar, eliminar) a objeto correspondiente.

El problema:
En cada uno de los objetos del botón tengo que usar @functions para llamar ClassA y enviar el objeto en sí, sino SÓLO en haga clic en no en el bucle for.

Aquí es algo de código (tengo que cambiar los nombres 🙂 )

@functions{
    public string ButtonClicked(ModelObjectA object)
    {
        System.Diagnostics.Debug.WriteLine("in");//to check when the method is called
        return "dae";
    }
}

The foreach loop:

 <table>
            @foreach (ModelObjectA  Object in ModelObjectACollection)
            {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => Object.Name)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => Object.Email)
                </td>
                <td>
                    <button type="button" id="details" value="@Object" onclick="hello(value);">Details</button>
                    <button type="button" value="@Object">Edit</button>
                    <button type="button" value="@Object">Delete</button>
                </td>
            </tr>
            }
    </table>

<script type="text/javascript">
    function hello(Value) {
      alert("Clicked");
    }
 </script>

Ya que ahora tengo acceso a el @ModelObjectA pero no puedo enviarlo a la máquina de afeitar de la función, ya que java es en el lado del cliente y la maquinilla de afeitar en el servidor.

Hay otra manera de hacer esto?

EDITAR:
Aquí está el rentered botones:

 <td>

                    <button type="button" id="details" value="(Project path).ModelObjectA" onclick="hello(value);">Details</button>
                    <button type="button" value="(Project path).ModelObjectA">Edit</button>
                    <button type="button" value="(Project path).ModelObjectA">Delete</button>
                </td>

EDIT 2: no estoy seguro de lo que necesito para cumplir con ese requisito. Estoy abierto a sugerencias.

  • Pero su vista se pone a preparar en el lado del servidor y puede incluir javascpit en su punto de vista. Qué valor te pasó a su hello() la función?
  • <button type=»button» id=»detalles» value=»@ModelObjectA» onclick=»hola(valor);»> – así es @ModelObjectA
  • Podría usted considerar la posibilidad de un título diferente para tu pregunta por favor? «MVC 4 preguntas» es demasiado vaga y no ayuda a los demás que pueden beneficiarse de las respuestas.
  • Tuve cambio es mejor ahora ?
InformationsquelleAutor Daniel Donev | 2013-08-23

1 Comentario

  1. 6

    Por el código que has pegado el problema es que le están poniendo el nombre de la clase en la etiqueta de valor.
    Intentar algo como esto:

    @foreach (ModelObjectA mObjA in ModelDealerCollection)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => ModelObjectA.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => ModelObjectA.Email)
            </td>
            <td>
                <button type="button" id="details" value="@mObjA" onclick="hello(value);">Details</button>
                <button type="button" value="@mObjA">Edit</button>
                <button type="button" value="@mObjA">Delete</button>
            </td>
        </tr>
    }
    • Sí vi que. Escribí mal en el examlpe es @Objeto. Acabo de arreglar.
    • Puede pegar un ejemplo del código HTML cuando su representado? Sólo un botón es suficiente.
    • No tengo acceso a la empresa de SQL Server en casa tengo a simular. Pero lo puedo intentar.
    • He publicado en la pregunta de EDICIÓN:
    • Por lo que puedo ver que usted está asignando el objeto mismo de «valor», se debe asignar alguna de las propiedades del objeto. Por ejemplo: <button type=»button» value=»@mObjA.Id»>Editar</botón>. ¿Quieres que el botón para redirigir a otra página? Si ese es el caso, usted debe asignar algunos de identificación de atributos para el valor de y en el evento onclick de la cala de JS función o un método en el Controlador.
    • No estoy seguro de que necesito JavaScriot. Sólo quiero este botón para tigre de la función @ButtonClicked(ModelObjectA). Que es. Cuando se pulsa el botón – llamar a la función.

Dejar respuesta

Please enter your comment!
Please enter your name here