2009-08-08 38 views
5

我正在遷移從asp.net網站到ASP.NET MVC什麼是「文字」標籤的asp.net的MVC相當於

在asp.net網站上有很多地方也有「文字「標籤,服務器在文字標籤中生成一串html和棍子。

什麼是asp.net的MVC doign這是等價的。我應該推這在ViewData?

回答

10

相當於是不會犯同樣糟糕的設計選擇原始開發商製造。

但是,因爲我們生活在現實世界中,你會推自己的字符串,其中,包含HTML的轉化爲特定的頁面展示模型,然後把它寫入響應流。

在你的模型:

public class MyPageModel 
{ 
    public string HolyCrapItsHtml {get;set;} 
} 

在你的控制器:

public ActionResult MyPage() 
{ 
    return View(new MyPageModel 
     {HolyCrapItsHtml = OldCode.GetHtmlICantBelieveIt()}); 
} 

而在你的頁面:

<div> 
    In the olden days, we'd concatenate our webpages together from strings like: 
    <%= Model.HolyCrapItsHtml %> 
</div> 
+0

感謝這種反應。你能否提供另一種方法,我可以重新設計這個目標? – leora 2009-08-09 13:55:45

+0

本質上是一回事,但不是在(這個例子)OldCode.GethtmlICantBelieveIt串聯在一起,你的HTML,在你的控制器,你收集你的數據,構成了該HTML的內容,把它放在模型內,你的視圖中渲染所有的HTML使用你的模型的內容。幾分鐘研究MVC,你會得到它的訣竅。 – Will 2009-08-09 17:38:05

3

我有同樣的問題。不要打擾一個MyPageModel,只是堅持使用ViewData,但使用等號而不是冒號。

<%= ViewData("SomeVarName") %> 
1

如果你使用的剃鬚刀,你如果不使用強類型的輔助

@Model.YourVarName 

如果您正在使用強類型的視圖模型工作中執行以下操作,您可以使用在ValueFor()輔助

@Html.ValueFor(m => m.YourVarName) 

如果你只是有一些文字,你可以把它們放在ViewData的,但如果你下一個真正的MVC模型,你應該用相應的屬性視圖中創建一個模型。考慮到你正在從現有的ASP.NET頁面移植,建立每個新的視圖/頁的新模式可以攜帶很多OV開銷,在這種情況下,把它貼在ViewData的。

相關問題