using @data-bind in ASP.NET MVC htmlAttributes thr

2020-07-03 08:16发布

问题:

I am using ASP.NET MVC 3.0 and KnockoutJS. I was trying to add the binding into my View Helpers like this ...

@Html.TextBoxFor(model => model.Name, new { @placeholder = "Name", @size = "35", @data-bind = "value: aName" })

But this throws the exception ...

Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.

Can anyone enlighten me on what this means - and moreover, how to solve it?

回答1:

It doesn't like the hyphen in the property name. To fix this change @data-bind to @data_bind and this will then render with a hyphen on the page.



回答2:

If you are using MVC2, you can use the following jquery function to change the data_bind to data-bind:

        // MVC2 fix for data_bind
        $('[data_bind]').each(function(i, item) {
            item = $(item);
            item.attr("data-bind",item.attr("data_bind"));
            item.removeAttr("data_bind");
        });