2017-03-26 45 views
0

我想在ASP.net中創建html助手。創建Html字符串/模板的最簡單方法是什麼?我想用這種方式來創建HTML塊:如何在c#中格式化html字符串?

<div class="simple"> 
    <span>Text</span> 
</div> 

所以,我不希望重寫由雙到單引號所有引號是這樣的:

<div class='simple'></div> 

這是更大的不舒服html代碼。那麼C#有沒有任何機會/語法像HTML一樣處理它。

例如,在ES6您可以使用此:

`<div class="simple"></div>` 

因此這將是巨大的,如果它在C#中是可能的。

+0

您能否澄清一下您的問題,因爲我無法理解您的需求。你想將雙引號的屬性轉換爲單引號嗎? – CodingYoshi

+0

如果您複製/粘貼HTML代碼,您可以用雙引號將其重寫爲單引號。在Javascript中,你不必這樣做。只把html放在這個引號中:''。那麼什麼是最好的C#複製/粘貼HTML? – ktom

+0

你爲什麼不做一個查找並全部替換?或者你想以編程的方式做到這一點? – CodingYoshi

回答

0

A " in a literal string can be written as \"

E.g.

string s = "<div class=\"simple\"></div>"; 

主要生產

<div class="simple"></div> 
2

最關鍵的事情是逃避報價使它成爲字符串內有效。

然後,您可以使用一個簡單的string formatstring buildertag builder或其他方法取決於你的HTML代碼塊是多麼複雜建立起來的字符串2-14。

using System; 
namespace MvcApplication.Helpers 
{ 
    public class TagHelper 
    { 
     public static string DivWithChild(this HtmlHelper htmlHelper, className, string text) 
     { 
      return string.Format("<div class=\"{0}\"><span>{1}</span></div>",className,text); 
     } 
    } 
} 

請記住,頁面上沒有宣佈任何輔助方法,必須有添加到web配置的命名空間做,你可以使用它們。

<system.web.webPages.razor> 
    <namespaces> 
     <!- add here..... --> 
     <add namespace="MvcApplication.Helpers.TagHelper"/> 

     </namespaces>   
    </system.web.webPages.razor> 
0

您可以使用逐字@開始串和雙""逃脫"如下。

using System; 

namespace ConsoleApp1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string html = @" 
       <div class=""simple""> 
        <span> Text </ span > 
       </ div > 
      "; 

      Console.WriteLine(html); 

     } 
    } 
} 

enter image description here

-1

C#不支持HTML/XML文本,但VB.NET一樣。如果您操縱HTML片段很多,您可以考慮在VB.NET模塊/程序集中爲它創建助手,並從您的C#代碼中調用它們。請參閱XML literals