我正在遷移從asp.net網站到ASP.NET MVC什麼是「文字」標籤的asp.net的MVC相當於
在asp.net網站上有很多地方也有「文字「標籤,服務器在文字標籤中生成一串html和棍子。
什麼是asp.net的MVC doign這是等價的。我應該推這在ViewData?
我正在遷移從asp.net網站到ASP.NET MVC什麼是「文字」標籤的asp.net的MVC相當於
在asp.net網站上有很多地方也有「文字「標籤,服務器在文字標籤中生成一串html和棍子。
什麼是asp.net的MVC doign這是等價的。我應該推這在ViewData?
相當於是不會犯同樣糟糕的設計選擇原始開發商製造。
但是,因爲我們生活在現實世界中,你會推自己的字符串,其中,包含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>
我有同樣的問題。不要打擾一個MyPageModel,只是堅持使用ViewData,但使用等號而不是冒號。
<%= ViewData("SomeVarName") %>
如果你使用的剃鬚刀,你如果不使用強類型的輔助
@Model.YourVarName
如果您正在使用強類型的視圖模型工作中執行以下操作,您可以使用在ValueFor()輔助
@Html.ValueFor(m => m.YourVarName)
如果你只是有一些文字,你可以把它們放在ViewData的,但如果你下一個真正的MVC模型,你應該用相應的屬性視圖中創建一個模型。考慮到你正在從現有的ASP.NET頁面移植,建立每個新的視圖/頁的新模式可以攜帶很多OV開銷,在這種情況下,把它貼在ViewData的。
感謝這種反應。你能否提供另一種方法,我可以重新設計這個目標? – leora 2009-08-09 13:55:45
本質上是一回事,但不是在(這個例子)OldCode.GethtmlICantBelieveIt串聯在一起,你的HTML,在你的控制器,你收集你的數據,構成了該HTML的內容,把它放在模型內,你的視圖中渲染所有的HTML使用你的模型的內容。幾分鐘研究MVC,你會得到它的訣竅。 – Will 2009-08-09 17:38:05