Frage

Ich bin mit ASP.NET MVC zusammen mit JQueryMobile in einem Web-App. Ich möchte einen Link erzeugen:

<a href="/Whatever/Previous" data-role="button" data-icon="arrow-l">Previous</a>

Ich habe einen Helfer Erweiterung Methode, die lässt mich tun:

<%= Html.ActionLink<WhateverController>(c => c.Previous(), 
         "Previous", 
         new { data-role = "button", data-icon="arrow-l" } ) %>

Mit Ausnahme data-role und data-icon ist als Eigenschaftsnamen in C # nicht gültig. @data-role verwenden, funktioniert aber auch nicht.

Gibt es eine Syntax zu arbeiten, um dieses? Oder bin ich mit der Schaffung einer spezialisierten Helfer fest, dass die richtigen Attributnamen kennt.

War es hilfreich?

Lösung

Sie sollten in der Lage sein IDictionary<string, object> zu verwenden, anstatt des anonymen Objekts:

Html.ActionLink<WhateverController>(c => c.Previous(), 
     "Previous", 
     new Dictionary<string, object>
     {
          { "data-role", "button" },
          { "data-icon", "arrow-l"}
     })

Andere Tipps

Neben svick Antwort haben wir eine ordentliche Änderung in ASP.NET MVC 3 mit Eigenschaften, die einen Unterstrich in ihnen automatisch die Unterstrichen zu Bindestriche umgewandelt haben.

Also, wenn Sie Code wie folgt aussehen:

<%= Html.ActionLink<WhateverController>(c => c.Previous(),  
     "Previous",  
     new { data_role = "button", data_icon="arrow-l") %> 

Es wird das Markup mit Bindestrichen machen:

<a href="/Whatever/Previous" data-role="button" data-icon="arrow-l">Previous</a>  

Denn das Zeichen ist auch die Subtraktion / einstellige Minusoperator können Sie es nicht in einem Bezeichner verwenden. Ich denke, die benutzerdefinierte Helfer-Methode ist wahrscheinlich die beste Wahl.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top