asp.net mvc - kendoui - Ventana de kendo MVC-Obtener datos de la función javascript
kendoui for jquery (1)
Si realmente necesita acceder a sus datos a través de la función getInfo()
JavaScript, la forma de hacerlo es definir la Ventana como lo está haciendo, pero no establecer el contenido hasta que abra la ventana. Al abrir la ventana, use jQuery.ajax()
para llamar a CopyResult
, pasando los resultados de getInfo()
al parámetro de datos.
En su Razor, LoadContentFrom
agregar un controlador de eventos para el evento Open
:
@(Html.Kendo().Window()
.Name("copyStructure")
// Omitted for brevity
...
.Events(e => e.Open("copyStructure_Open"))
)
Y en su controlador en JavaScript, llame a $.ajax
y en la devolución de llamada success
, llame al método de content
en el objeto Ventana pasando los data
devueltos como el parámetro:
function copyStructure_Open(e) {
$.ajax({
url: ''@Url.Action("CopyStructure", "NewXmlLayout")'',
type: ''POST'',
data: getInfo(),
success: function(data) {
e.sender.content(data);
}
});
}
Tenga cuidado de solo enviar lo que se requiere para el contenido de la ventana, y no una página completa (DOCTYPE, html, head, body); consulte esta documentación de Telerik: http://docs.telerik.com/kendo-ui/getting-started/ web / ventana / información general # loading-window-content-via-ajax
Tengo esta ventana de kendo en mi aplicación
Html.Kendo().Window()
.Name("copyStructure")
.Title("Copy Structure")
.Content("Loading...")
.LoadContentFrom("CopyStructure", "NewXmlLayout") // <-- here*
.Draggable(false)
.Visible(false)
.Modal(true)
.Actions(s => s.Custom(""))
.Events(e => e.Open("openWindow").Close("closeWindow"))
Y trato de pasar datos al acrion en LoadContentFrom () que devuelve una función javascript, pero no sé cómo hacerlo. Puedo pasar datos como este:
.LoadContentFrom("CopyStructure", "NewXmlLayout", new { type= "INPUT" })
Pero no es lo que estoy buscando.
La función JS:
function getInfo() {
return { type: "INPUT" };
};
Mi controlador:
public ActionResult CopyStructure(string type)
{
return PartialView();
}