2017-09-04 57 views
0

我有一個局部視圖,其中有一個錨標記。一旦我使用Html.Partial()加載部分視圖,我想根據條件刪除該錨標籤。像:如何修改由Html.Partial(「PartialViewName」)返回的MVCHtmlString

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

注:我想刪除錨標記,然後想呈現頁面上仍然HTML。我意識到ViewBag,Jquery/Javascript的所有技巧。我只想知道我該如何做到這一點?我如何獲得該元素,以及如何刪除該元素並呈現保留的html?

+1

爲什麼不把這個條件放在部分本身內(或者使用javascript來根據你的條件刪除元素) –

+0

我可以如果我能以這種方式做到這一點,那麼在許多地方使用它就不會有局部的觀點。否則,我知道如何從jquery中完成它。 :) –

+0

是的,你可以。讓你的部分接受一個模型並傳遞一個參數。不要在要保留現有行爲的地方提供模型。 – GSerg

回答

0

正如評論所暗示的,你可以在你的局部視圖中處理它,而不是操縱MvcHtmlString。如果您關注的是,在許多地方正在使用你的部分觀點,你可以使用ViewBag這樣的:

在當前的ActionMethod

ViewBag.HideAnchor = true; 

在您的局部視圖:

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

我想你沒有得到確切的問題。我有你們所建議的各種選擇。我想按照我在問題中指定的方式來做。無論如何感謝您的努力。 –

+0

@PriyankSheth不,我有你的問題。你說*「我不能在局部視圖中將條件放在多處使用」*。所以我說它在許多地方使用並不重要,因爲你可以檢查null。如果你堅持操縱MVCHTMLString,你可以使用[Html Agility Pack - remove](http://html-agility-pack.net/remove)。這是很好的[文章](https://world.episerver.com/blogs/Anders-Hattestad/Dates/2014/2/How-to-get-html-from-a-view-and-change-the-content -in-MVC /) – adiga