Pregunta

Tengo la siguiente estructura:

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

    public InnerDummy Dum { get; set; }
}

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

Y un ActionResult que recibe un Dummy

[HttpPost]
public ActionResult Index(Dummy dum)
{
    var dsad = dum;
    //var dwss = idum;

    return RedirectToAction("index");
}

En mi punto de vista que yo tengo:

@model TestMVC3Razor.Controllers.HomeController.Dummy
@using (Html.BeginForm())
{
    @Html.TextBoxFor(o => o.Name)
    @Html.EditorFor(o => o.Dum)

    <br />
    <br />
    <input type="submit" />
}

Es la publicación de

Name=xxx
Dum.Name=yyy

Pero cuando trato de entrar dum.Dum.Name en el ActionResult Puedo conseguir null en lugar de yyy.Es esto un error o simplemente de la manera que es?No estoy usando ese derecho?Qué necesito para implementar un cuaderno nuevo para esto?

¿Fue útil?

Solución

HOLA~ tu vista debe usar @Html.EditorFor(o => o.Dum.Name)

no @Html.EditorFor(o => o.Dum)

Y devolución de datos Controlador:

[HttpPost]
public ActionResult Index(Dummy postback)
{
    var dsad = postback;
    var a = postback.Name;        //get Name of Dummy
    var b = postback.Dum.Name;    //get Name of InnerDummy of Dummy

    return RedirectToAction("index");
}

Si usted tiene problemas al respecto, por favor haganmelo saber :)

Otros consejos

Usted necesita para tirar de la InnerDummy salida desde el interior de la Dummy clase.

Cuando el modelo predeterminado cuaderno encuentra el Dum la propiedad se va a tratar de crear un objeto de tipo InnerDummy, pero , en su contexto, eso no existe.Para hacer referencia a InnerDummy como la tiene el modelo de cuaderno necesita para crear un Dummy.InnerDummy, pero no tiene manera de saber eso.

Hacer InnerDummy un miembro directo de la espacio de nombres va a solucionar el problema.

También puede ser posible para solucionar el problema declarando Dum como:

public Dummy.InnerDummy Dum { get; set; }

No estoy seguro acerca de esto, sin embargo.

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