Pregunta

User View Control No tiene un código-detención. Entonces, ¿dónde/cómo debo hacer el events de elementos?

Quiero entender una lógica de control en MVC ...

¿Fue útil?

Solución

No hay controles de usuario en MVC, por lo que no debe preocuparse por la lógica de un control. No hay posteriores en MVC. No hay ViewState en MVC. No hay eventos en MVC.

Hay modelos:

public class MyViewModel
{
    public string Name { get; set; }
}

Controladores manipulando el modelo:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel
        {
            Name = "John"
        });
    }
}

y vistas que ofrecen los datos contenidos en el modelo:

@model AppName.Models.MyViewModel
<div>@Model.Name</div>

Cuando las vistas deben llamar a algo al controlador, ya no usan ninguna publicación o eventos: utilizan artefactos HTML estándar, como enlaces de anclaje para enviar solicitudes y formularios para enviar solicitudes de publicación.

Ejemplo:

@Html.ActionLink("click me", "Foo", new { param = "123" })

Generaría un enlace de anclaje al pase de acción del controlador FOO param=123 como parámetro de cadena de consulta:

<a href="/home/foo?param=123">click me</a>

y lo siguiente:

@using (Html.BeginForm("Foo", "Home"))
{
    @Html.TextBoxFor(x => x.Name)
    <input type="submit" value="OK">
}

Generaría un formulario HTML que le permita publicar en la acción del controlador FOO cierta información:

<form action="/Home/Foo" method="post">
    <input type="text" id="Name" name="Name" value="" />
    <input type="submit" value="OK" />
</form>

Recursos útiles con muchos tutoriales y videos para aprender ASP.NET MVC:

Otros consejos

Personalmente, ID realiza la lógica en el controlador o que el controlador llame a una clase de lógica comercial que hace el trabajo por usted. El controlador luego devolverá la vista. Pase el modelo a su vista desde el controlador y luego pase el modelo desde la vista a la vista parcial (equivalente de MVC de un control de usuario)

Esto significará que no hay lógica en la vista/ vista parcial y significará que puede representar el modelo de una manera muy limpia.

¿Esto tiene sentido?

Parece que está demasiado adjunto al ciclo de vida de la página de Forms WebForms.

La metodología de programación en la superficie para MVC es fundamentalmente diferente a las formas web. Es más parecido a Ruby on Rails.

Algunos recursos para ayudarlo a aprender MVC son:

Sitio web oficial de MVC

Proyecto Nerddinner de Scott Hanselman

También recomendaré el proyecto Nerddinner de Scott Hanselman. Es un gran proyecto para aprender el marco ASP.NET MVC.

También lea y vuelva a leer la respuesta de Darin Dimitrov. Contiene los conceptos básicos de cómo se manejan los datos en MVC

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top