Estoy tratando de usar un Kendo UI Editor de control en mi ASP.NET aplicación MVC. Ningún éxito hasta ahora, ya que no puedo gestionar para obtener el valor en el editor de vuelta a la modelo en el controlador.

Mi modelo es muy simple (para editar una página html en mi sitio web):

public class EditedPage
{
public string Name { get; set; }
public string Title { get; set; }

[AllowHtml]
public string Content { get; set; }
}

Y mi punto de vista incluye este código:

@model Page

<h2>@Model.Title</h2>
@using (Html.BeginForm())
{
    @Html.HiddenFor(m => m.Name)
    @Html.HiddenFor(m => m.Title)

    @(Html.Kendo().EditorFor(m => m.Content)
    .Name("Editor")
    .HtmlAttributes(new { style = "width:800px;height:600px;margin-left:20px;" })
    )

    <div>
        <input type="submit" value="@Resources.StringResources.Save" class="k-button"/>
    </div>
}

Yo estaba esperando el método post en el controlador para obtener el modelo de llenado. Si puedo añadir simples editores de Nombre y Título (en el ejemplo de código que están ocultos) funciona bien, pero el Contenido siempre se vuelve nulo.

Aquí es mi método de controlador:

[HttpPost]
public ActionResult EditPage(Page page)
{
if (!ModelState.IsValid)
 return View(page);

//save content in a file

return View("CustomPages");
}

Lo que me estoy perdiendo? Supongo que necesito un poco de javascript para obtener el valor desde el editor, pero no sé cómo conseguirlo.

Cualquier ayuda sería bienvenida. Gracias

InformationsquelleAutor Jaime | 2013-01-18

2 Comentarios

  1. 10

    Nombre de su editor de ‘Contenido’. Realmente. 🙂

    EDITAR

    @model Page
    
    <h2>@Model.Title</h2>
    @using (Html.BeginForm())
    {
        @Html.HiddenFor(m => m.Name)
        @Html.HiddenFor(m => m.Title)
    
        @(Html.Kendo().EditorFor(m => m.Content)
        .Name("Content")
        .HtmlAttributes(new { style = "width:800px;height:600px;margin-left:20px;" })
        )
    
        <div>
            <input type="submit" value="@Resources.StringResources.Save" class="k-button"/>
        </div>
    }
    • Retroalimentación constructiva es bien, pero bien puedes explicar a ti mismo. Que no es útil en absoluto.
    • SE trabajó. Ahora parece que tiene que codificar el HTML devuelto. Por qué causó el nombre de el problema?
    • Es sólo una de Kendo capricho, el Nombre es el campo que en el modelo que se asigna el valor de profundidad en el fondo de la forma de Kendo obras. Puesto que usted está utilizando el EditorFor usted puede ser capaz de no utilizar la .Nombre y, a continuación, la prioridad debe caer para el campo especificado – creo que. Yo siempre explícitamente nombre, aunque sólo para estar seguro.
    • por fin! gracias por la ayuda…tengo la mía de trabajo.
    • La eliminación .Nombre() trabajó para mí. Nomenclatura el editor de «Contenido» no.
    • No he experimentado este problema en las versiones más recientes, no estoy seguro que cambió – más de un año tal vez. Ahora, si usted utiliza EditorFor, como Joe menciona simplemente no usar también .Nombre().
    • Realmente funciona 🙂
    • Bienvenido a kendo del retraso … todo tiene que ser «tan»
    • Es la manera en que el modelo de cuaderno de obras. Especificando nombre, dar la entrada de un nombre de atributo, el cual es entonces comparable con la de la modelo de cuaderno y sabe cómo enlazar a esa propiedad. No se trata de «retrasado».

  2. 2

    Tuve el mismo problema, y la única manera de obtener esta resuelto en el uso y EditorFor fue para no llenar el Nombre de la propiedad en todo.

Dejar respuesta

Please enter your comment!
Please enter your name here