2017-09-04 13 views
0

1つのアンカータグがある部分ビューが1つあります。 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を操作するのではなく、部分的なビュー自体でこれを処理できます。あなたの現在のActionMethod

:あなたの懸念は、あなたの部分図は、多くの場所で使用されている場合は、このようなViewBagを使用することができ

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いいえ、私はあなたの質問を持っています。あなたが言った* "私は多くの場所で使用されているとして部分的なビューで条件を置くことはできません" *。だから、あなたがヌルをチェックできるように、それが多くの場所で使われているかどうかは問題ではないと言っています。あなたMVCHTMLStringをmanipluatingすることを主張する場合は、[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

関連する問題