2013-11-23 68 views
0

我有字符串消息,我想將HTML代碼放入控制器中。 我該怎麼做?如何在ASP.NET MVC控制器中編寫html代碼

string message = @"<div style="direction: ltr; width: 700px; margin: 0px auto; font-family:Verdana; font-size:11px; line-height:25px;"> 
     <div style="line-height: 21px; color: rgb(68, 68, 68); font-family: Calibri, sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> 
      <div style="line-height: 21px; min-height: 14px;"> 
       <br class="Apple-interchange-newline" /> 
       <br style="line-height: 21px;" /> 
      </div> 
     </div>"; 

但它顯示錯誤。 我該怎麼做?

+0

返回一個字符串或值到您的視圖,然後運行某種類型的IF語句不是一個選項?該視圖應該處理html ...否? –

回答

1

嘗試用單引號替換雙引號,這些引號位於HTML標記中。

1

有很多方法可以做..

你在asp.net mvc的正在做的方式是是不是最好的做法,因爲它在你的控制器混合視圖(演示文稿)..

要做到這一點:

1. use TagBuilder and create Each tag and add attributes .. 

2. use StringBuilder and use AppendFormat and AppendLine To Format String 
    and use code variables inside your HTML Markup 

3. return some name from controller and control from javascript from 
    this name the html you have to render (you can use Jquery templates) 

使用MVCHtmlString創建HTML

1

你可以使用MvcHtmlString創建於控制器側

public static MvcHtmlString CreateHTML<TModel, TProperty>(this HtmlHelper<TModel> helper, string yourstring) 
    { 

     return MvcHtmlString.Create(htmlString); 
    } 

HTML元素或者你可以使用TagBuilder

var builder = new TagBuilder("a"); 
builder.SetInnerText("Your Text"); 
builder.MergeAttribute("href", "http://test.com"); 
builder.MergeAttribute("class", "setPage"); 

然後appent這個bulder.ToString()到StringBuilder的

0

與控制的最佳實踐這樣你就不應該有任何東西會直接發佈爲html。相反,首選html助手作爲視圖,並在需要時重複使用。

0

如果你的控制器有一個你想要顯示的html數據的模型,然後讓它返回一個根據模型創建你的html的局部視圖,它可能是首選。這個框架就是爲了讓您的html呈現在視圖中而設計的。

也可能更傾向於在CSS文件中創建樣式,並將這些元素應用於這些元素 - 稍微清晰一點以便更新。

0

看着你的代碼,我會採取以下方法避免混合你的視圖和代碼。

我會創建一個包含HTML代碼的局部視圖,並從視圖中加載它作爲

@Html.Partial("~/Views/Shared/_html.cshtml"); 

如果HTML需要動態改變我的模型傳遞到它像這樣:

@Html.Partial("~/Views/Shared/_html.cshtml", model); 

並替換動態元素。

相關問題