ASP.NET MVC 3과 헬퍼 @ Html.Raw를 사용하고 있습니다.절대 URL을 변경하는 ASP.NET MVC3 Html.Raw?
데이터베이스에 저장 한 HTML 마크 업을 전달 중입니다. 마크 업에는 내 사이트의 다른 위치를 가리키는 URL이 포함되어 있습니다. 예 : http://www.foo.fom/events. 이 데이터는 포럼 게시물이기 때문에 표시되는 페이지의 형식은 http://www.foo.com/forums/thread/42/slug입니다. 이 단지 내 사이트의 URL에 대한 발생
http://www.foo.com/forums/thread/42/events/
: 페이지가 렌더링 될 때
그러나 구원의 URL은 다음과 같이 수정 된 형태로 렌더링됩니다. URL이 일부 외부 사이트를 가리키는 경우 변경되지 않습니다.
나는 @ 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);
내가 디버거를 통해 확인한 그 게시물의 정확한 URL을 제공해야합니다. 보기로 다시 전달되기 전에 본문은 "http://www.foo.com/events"형식입니다 (뒤에 슬래시는 없습니다). 또한 디버거를 통해 @ Html.Raw에 값이 전달되기 전에 값이 변경되지 않았 음을 확인했습니다.
실제 코드를 우리에게 보여줘. Html.Raw는 URL 재 매핑을하지 않으므로 다른 일을합니다. –
@Mystere가 지적했듯이,'Html.Raw'는 데이터를 조작하지 않습니다. 우리에게'post.Body'의 정확한 내용을 보여주십시오. 아마도 파일에 쓰면 그 데이터가 무엇인지 정확히 알 수 있습니다. –
다소 이상합니다. 보기에서 "게시"를 어떻게 설정하고 있습니까? 그게 모델이 될 수 없어. 바디? –