나는 오랫동안 googlin이었고, 내가 필요한 것을 찾지 못했습니다. 이것은 우리의 시나리오입니다.데이터베이스에 @ html.actionurl이있는 mvc 면도기
면도날이있는 MVC4 앱이 있습니다. 한 화면에서 Telerik Editor 컨트롤을 사용하여 텍스트와 이미지를 저장합니다. 이들은 HTML 형식으로되어 있으며 데이터베이스에 저장됩니다. 이미지는 byte [] 데이터로 저장되고 html src "path"는 별개의 파일 이름으로 업데이트됩니다.
나중에 사용자가 와서 데이터를 보려고합니다. 모든 이미지가 데이터베이스에 저장되기 때문에 여기서 찾은 예제를 사용할 수 있다고 생각했습니다. Convert Byte Array to Image and Display in Razor View 그리고 Url.Action이있는 태그로 HTML의 태그를 업데이트 한 다음 해당 HTML을 모두 화면에 렌더링합니다. 이미지 태그를 교체 한 후
내 동적으로 생성 된 HTML 코드의 샘플은
<p>testing the image blah</p><p><img src="@Url.Action("getImg", "Responses", new { id = 1 }) " alt="Response Image" /> </p>
이다하지만 내가 HTML.Raw (텍스트)를 사용하는 경우, 이미지를 처리하지 않습니다. 해당 이미지 태그를보기로 바로 복사하면 멋지게 작동합니다.
제 질문은 뷰에 Razor 구문 코드로 동적으로 생성 된 HTML을 어떻게 적절하게 렌더링 할 수 있습니까?
몇 자세한 내용은 ***********
*************** 자세한 내용은 내가 뭘하는지 명확히 도움이됩니다. Response 및 ResponseImage라는 두 가지 모델이 있습니다.
public class Response : TrackableBase
{
[Key]
public int ResponseId { get; set; }
public string Subject{ get; set; }
[MaxLength]
public string Text { get; set; }
public virtual ICollection<ResponseImage> ResponseImages { get; set; }
}
공용 클래스 ResponseImage : TrackableBase { [키] 공공 INT의 ResponseImageId {얻을; 세트; }
public int ResponseId { get; set; }
[ForeignKey("ResponseId")]
public virtual Response Response { get; set; }
public string FilePath { get; set; }
public string FileName { get; set; }
public string FileExtension { get; set; }
public byte[] Image {get; set;}
}
Response.Text는 Telerik 편집기에서 HTML을 저장합니다. HTMLAgilitypack을 사용하여 HTML의 모든 이미지를 반복하고 ResponseImage 레코드를 만듭니다. ResponseImage.FilePath는 Response.Text에 저장된 HTML 코드로 다시 링크로 사용됩니다 (모든 이미지는 고유 한 이름/경로).
내 Details.cshtml 화면에서 Response.Text의 세부 정보를보고 싶습니다. 나는 데이터베이스에 이미지가 아닌 파일 시스템을 저장하고 있기 때문에 다시 HTMLAgility 팩을 사용하고 면도기와 이미지 태그의 모든 업데이트,
<p>hjjk</p><p>
<img alt="" height="144" src="/Content/Editor_Images/UserFiles/JKULBIDA/Images/Koala_635019802303066655.jpg" width="164"></p>
을하지만 : 데이터베이스에서 내 Response.Text은 다음과 같습니다 @ Url.Action을 사용하기위한 구문. 내 새 HTML은 다음과 같습니다.
<p>hjjk</p><p><img src="@Url.Action("getImg", "Responses", new { id = 4 }) " alt="Response Image" /> </p>
마지막으로 내보기에는 데이터를 표시하고 HTML 형식도 올바르게 지정하고 싶습니다. 난 그래서, 미리 **** 업데이트의 끝 *****
감사를 전 @ Html.Raw (Model.Text)를 호출 내 이미지 태그가 작동하지 않습니다 :(
을
답장을 보내 주셔서 감사합니다. 내 전체 프로세스에 대한 정보를 추가했습니다. 난 그냥 내 이미지 태그를 렌더링하는 부분보기를 사용하는 것이 좋습니다 생각, 난 여전히 같은 문제가 HTML 내부에서 @ Html.Partial 호출하려고하지 않을까 궁금하네요. Raw? 아니면 궁극적으로 HTML/Razor 믹스 백을 렌더링하는 더 좋은 방법이 있습니까? – superservo15
부분보기는 이미지 객체를 모델로 가질 수 있었지만 기본보기에서 속성이나 변수를 사용하여 동일한 작업을 수행 할 수있었습니다. HTMLAgility가 어떻게 작동하는지 모르겠으므로 거기서 도울 수 없습니다.하지만 당신이하는 일에 따라, 문자열을'Html.Raw'에 전달합니다. 그래서 면도기처럼 보입니다. 일반 텍스트로 취급되며 실행되지 않습니다. 편집을 참조하십시오. 이제 내가하는 일을 볼 때 더 나은 대답을 얻을 수 있습니다. –
물론 이것은 의미가 있습니다 :) 이제는 매력처럼 작동하고 전체 img 태그 대신 src 값만 바꾸면 HTML 형식의 크기 및 크기가 유지됩니다. 금! 나는 Routing이 나의 레이다조차도 아니기 때문에 MVC에 아직 익숙하지 않다. 그러나 그것은 지금있다 :) soooo 많이! – superservo15