2017-09-04 1 views
0

Ich habe eine Teilansicht, in der es ein Anker-Tag gibt. Sobald ich eine Teilansicht mit Html.Partial() geladen habe, möchte ich dieses Anchor-Tag basierend auf der Bedingung löschen. Wie:So ändern Sie MVCHtmlString von Html.Partial zurückgegeben ("PartialViewName")

@{ 
    var html = Html.Partial("PartialView"); 
    if(true) 
    { 
     // Delete anchor tag from MVCHtmlString. 
    } 
} 

Hinweis: Ich möchte Anker-Tag löschen und dann will geblieben html auf Seite machen. Ich kenne all diese Tricks von ViewBag, Jquery/Javascript. Ich will nur wissen, wie ich das machen kann? Wie kann ich dieses Element bekommen und wie kann ich das entfernen und html rendern?

+1

Warum nicht diese Bedingung innerhalb der Teil selbst setzen (oder alternativ Javascript verwenden, um das Element basierend auf Ihrer Bedingung zu löschen) –

+0

Ich kann Wenn man den Zustand in Teilansicht sieht, wäre es gut, wenn man es auf diese Weise anwenden könnte. Ansonsten weiß ich, wie man es von jQuery macht. :) –

+0

Ja kannst du. Lassen Sie Ihr Teil ein Modell akzeptieren und übergeben Sie einen Parameter. Stellen Sie das Modell nicht an Orten bereit, an denen Sie das vorhandene Verhalten beibehalten möchten. – GSerg

Antwort

0

Wie die Kommentare vorschlagen, können Sie dies in Ihrer Teilansicht selbst behandeln, anstatt MvcHtmlString zu manipulieren. Wenn Ihr Anliegen ist Ihre Teilansicht in vielen Orten verwendet werden, könnten Sie ViewBag wie folgt verwenden:

In Ihrem aktuellen ActionMethod:

ViewBag.HideAnchor = true; 

In Ihrer Teilansicht:

// first condition is true for all the other places it is being used 
@if (ViewBag.HideAnchor == null || !ViewBag.HideAnchor) 
{ 
    // your anchor 
} 
+0

Ich denke, Sie haben die genaue Frage nicht bekommen. Ich habe alle Möglichkeiten, die Sie vorschlagen. Ich möchte es so machen, wie ich es in meiner Frage angegeben habe. Trotzdem danke für deine Bemühungen. –

+0

@PriyankSheth Nein, ich habe deine Frage. Du hast gesagt: "Ich kann den Zustand in der Teilansicht nicht als an vielen Stellen verwendet" * setzen. Ich sage also, es spielt keine Rolle, ob es an vielen Stellen verwendet wird, da Sie nach Null suchen können. Wenn Sie darauf bestehen, MVCHTMLString zu manipulieren, können Sie [Html Agility Pack - entfernen] (http://html-agility-pack.net/remove) verwenden. Das ist gut [Artikel] (https://world.episerver.com/blogs/Anders-Hattestad/Dates/2014/2/How-to-get-html-from-a-view-and-change-the-content -in-MVC /) zum Thema – adiga

Verwandte Themen