我在我的視圖中使用ASP.NET MVC 3和幫助器@ Html.Raw。ASP.NET MVC3 Html.Raw更改絕對URL?
我把它傳遞給我存儲在數據庫中的一些HTML標記。該標記包含一些指向我網站上其他位置的網址。例如http://www.foo.fom/events。這些數據是論壇帖子,因此它們顯示的頁面格式爲http://www.foo.com/forums/thread/42/slug。
然而,當頁面呈現,保存的網址是在修改的形式呈現爲:
http://www.foo.com/forums/thread/42/events/
這只是發生在我的網站的網址。如果網址指向某個外部網站,則不會改變。
我已驗證我傳入@ Html.Raw的是正確的URL(http://www.foo.com/events)。爲什麼頁面渲染時會發生變化?有沒有簡單的方法來禁用此「功能」?
這裏是我的顯示標記代碼:
<div>
@Html.Raw(post.Body)
</div>
,這裏是該genrates頁面數據的控制器代碼:
var post = _forumRepository.GetPostById(id)
var model = new ForumPostView()
{
Body = post.Body,
PostDate = post.DatePosted,
PostedBy = post.Author,
PostId = post.Id
};
return View(model);
我已經通過調試驗證了在後的確切地址。在傳遞迴視圖之前,Body是「http://www.foo.com/events」形式(無尾隨斜線)。我還通過調試器驗證了該值在傳遞到@ Html.Raw之前是否保持不變。
向我們顯示您的實際代碼。 Html.Raw不會執行任何Url重新映射,所以它是其他事情正在做的事情。 – 2012-04-06 19:09:29
正如@Mystere指出的那樣,'Html.Raw'不能操縱你的數據。請向我們展示'post.Body'的確切內容 - 也許將它寫入一個文件,以便我們確切知道數據是什麼。 – 2012-04-06 20:41:06
這有點奇怪。你如何在你的視圖中設置「發佈」?這不應該是Model.Body嗎? – 2012-04-06 20:43:48