2012-12-05 21 views
1

讓我通過說我知道我可以使用HTML.Raw()來顯示包含在字符串中的HTML。但是,我相信MVC的目的是分離代碼邏輯,並允許前端開發人員專注於UI而不是邏輯。因此,我嘗試從模型中完全按照我希望的樣子通過。從模型返回HtmlString並在視圖中顯示

這使我想到我的問題。我有一個包含地址的模型。我寫了一個函數,返回幾個不同版本(單行,雙行,多行)的地址,我將它們設置爲HtmlString對象。

public HtmlString TwoLine { get { return ReturnFullAddress(2); } } 
/* function removed for brevity */ 

然而,當我寫了下面的代碼剃刀:

@Html.DisplayFor(modelItem => item.Address.TwoLine) 

沒有文本視圖內返回。當我調試這個時,在Address.TwoLine中有一個正確賦值的值,但它在{}中(我認爲這很奇怪)。

如何使這項工作,或爲什麼不工作?

回答

2

DisplayFor()不知道如何處理HtmlString屬性。
您應該直接打印該值:@Model.Address.TwoLine

+0

'DisplayFor()'不接受'HtmlString'。將我的變量更改回字符串並使用'DisplayFor()'結果不會顯示任何內容。使用'Html.Raw'仍然有效。此外,只是一個筆記...這是在一個foreach循環。 –

+0

我也試過這個'MvcHtmlString',並沒有成功 –

+0

@Eric:根本不使用'DisplayFor'。 – SLaks

相關問題