2011-06-29 13 views
17

que estoy usando Knockout-JS para unirse propiedades en mi punto de vista a mi modelo de vista. Knockout-JS usa un atributo personalizado llamado 'data-bind' que debe agregar a los controles en los que desea ver los objetos del modelo.atributo de encargo con el guión en nombre usando EditorFor ayudantes/TextBoxFor/TextBox

Ejemplo:

<input type='text' name='first-name' data-bind='value: firstName'/> 

Aviso el atributo '-bind datos'.

En mi opinión prestación, tengo problemas para la prestación de un cuadro de texto que tiene este atributo. Soy consciente de los Html.EditorFor, Html.TextBoxFor y ayudantes Html.TextBox todos toman un objeto anónimo que se puede utilizar para especificar los atributos personalizados. El único problema con esta implementación es C# no permite guiones como nombres de variables, por lo que este no se compilará: @ Html.EditorFor (m => m.FirstName, nueva {data-bind = "valor: Nombre"}) ;

Lo único que ocurre es esto (en vista-modelo):

public class DataBindingInput 
{ 
    public string Value { get; set; } 
    public string DataBindingAttributes { get; set } 
} 

public class MyViewModel 
{ 
    ... 
    public DataBindingValue firstName { get; set; } 
    .... 
} 

Y una plantilla de vista llamado "DataBindingInput.cshtml":

@model DataBindingInput 
<input type='text' data-binding='@Model.DataBindingAttributes' value='@Model.Value'> 

El único problema con este ¿Perdí la generación automática del nombre de la entrada por lo que no funcionará en una devolución posterior porque la carpeta del modelo no tiene idea de cómo vincularla.

Como puedo hacer este trabajo?

+7

Ver http://stackoverflow.com/questions/2520487/how-to-use-html-5-data-attributes-in-asp-net-mvc/4515095#4515095 –

+0

Gracias, lo hice funcionar: Parece que el editor no funcionaba con EditorFor (m => m.firstName, new {data_binding = m.DataBindingAttributes}). Después de que agregué una plantilla de vista personalizada y usé TextBoxFor, pareció funcionar. ¿Hay alguna manera de hacerlo con EditorFor? –

+0

La misma pregunta aquí - me cambió desde EditorFor a TextBoxFor y funcionó bien, pero lo que me llevó primero a la entrada de la Media Luna fresca mencionado, y luego éste, estaba tratando de localizar a cómo hacer este trabajo con EditorFor. –

Respuesta

27

Gracias a Crescent peces por encima, parece que sólo se puede utilizar guiones y MVC 3 va a convertirlos en guiones de subrayado ya no están permitidos en los nombres de atributos HTML.

Cuestiones relacionadas