asp.net-mvc-4
  • knockout.js
  • razor-2
  • 2013-04-23 11 views 5 likes 
    5

    Mam Knockout w ciekawy wiązania, które działa doskonale:Razor szablon redaktor nie lubi mojego Knockout w ciekawy wiążące składni

    <a data-bind="attr: { href: 'Action?destination=' + '@Model.Property' + '&entityId=' + Id }">Select</a> 
    

    Jednakże, podświetlanie składni w Visual Studio jest rzucanie się „niezakończona stała łańcuchowa” błąd po wczytaniu dowolnej właściwości modelu do łańcucha href.

    Eksperymentowałem z "@()" i "@:", ale nie wydaje się, aby redaktor był szczęśliwy.

    +0

    Czy kod renderuje się poprawnie i działa w przeglądarce? Jeśli tak, to nie powinieneś przejmować się komunikatem o błędzie VS ... Intelisense Razor wciąż nie jest w 100% poprawne. Przy okazji, której wersji VS używasz? 2010? 2012? Vanilia lub z Resharper/CodeRush/etc? – nemesv

    +0

    @nemesv: Używam aktualizacji 2 wanilii 2012. Kod renderuje się poprawnie i działa dobrze w wielu przeglądarkach. Po prostu stwierdzam, że błąd VS wywoła obawy u niektórych innych programistów lub programistów znaczników ... –

    +1

    Czy próbowałeś wcześniej przypisać całe 'href' do zmiennej lokalnej, a następnie użyć tego do wstawienia wartości, aby nie masz żadnych pojedynczych cytatów? – Tyrsius

    Odpowiedz

    -4

    Dlaczego po prostu nie używać zwykłego Html.ActionLink?

    @Html.ActionLink("Action", "Select", new { destination = Model.Property, entityId = Model.Id }); 
    
    1

    miałem podobny problem, gdzie chciałem przekazać URL działania kontrolera (dostarczony przez wystąpienie widoku Razor UrlHelper) do moich funkcji ViewModel być wykorzystane później w jQuery AJAX wywołuje.

    Poniższy markup działa w przeglądarce, ale daje podświetlanie składni w Visual Studio:

    <button data-bind="click: function (data) { someFunction(data, '@Url.Action("SomeAction", "SomeController")') }">Action!</button> 
    

    Podświetlenie składnia może być tłumione przez zmianę wyżej na następujące kwestie:

    <button data-bind="@("click: function (data) { someFunction(data, '" + Url.Action("SomeAction", "SomeController") + "') }")">Action!</button> 
    
    Powiązane problemy