Tôi muốn sử dụng mẫu Razor sau đây với RazorEngine:RazorEngine - Sử dụng Layout và Html.Raw
@{
Layout = null;
}
@Html.Raw(MyNamespace.MyClass.SomePropertyWithHtml)
Khi tôi gọi nó là tôi nhận được 2 lỗi - một trong những phàn nàn nó không thể xử lý Layout, và khác phàn nàn nó không biết làm thế nào để đối phó với người trợ giúp Html.
Có các câu hỏi và câu trả lời khác ở đây cho thấy điều này là có thể trong v3 và tôi đang sử dụng gói hiện tại trên NuGet - v3.0.8 - nhưng không rõ cách thực hiện việc này. Hiện tại tôi đang gọi nó như vậy:
string html = RazorEngine.Razor.Parse(File.ReadAllText(path));
Câu trả lời khác đề xuất sử dụng Razor.SetBaseTemplate đầu tiên, không xuất hiện trong nguồn hiện tại hoặc nhánh 3.0 trên git. Nhìn vào mã tôi thấy mã tham chiếu các bố trí và các phần, nhưng mã bố trí dường như phụ thuộc vào việc phân giải mẫu theo tên, trong khi những gì tôi đang cố gắng làm thậm chí không cần phải giải quyết mẫu - tôi chỉ cần nó để đối phó với Layout = null. Mã này cũng bao gồm một MvcTemplateBase xuất hiện để cung cấp một HtmlHelper trong dự án Web - nhưng nó là lớp duy nhất trong dự án đó và không được tham chiếu ở bất kỳ đâu trong các dự án Web hoặc Core.
này câu hỏi tương tự: RazorEngine issues with @Html
Chỉ cần liên kết đến trang chủ nói rằng bạn có thể tìm hiểu thêm ở đó - các trang web chỉ là một câu ngắn mô tả dự án.
Vì vậy, làm cách nào để phân tích cú pháp chế độ xem Dao cạo ở trên với RazorEngine v3.0?
Ồ, bạn đang sử dụng RazorEngine ... Một điều cần lưu ý là Razor không phải là MVC. Rất nhiều công việc đã được thực hiện với RazorEngine mới nhưng Antaris đã thực sự bận rộn gần đây. Bạn sẽ có thể sử dụng '@inherits MvcTemplateBase' ở đầu tệp để sử dụng nó. –
Buildstarted
Cảm ơn bạn đã đề xuất. Tôi nhận ra Razor và MVC là riêng biệt, nhưng mục tiêu của tôi là sử dụng cùng một mẫu MVC Razor bên trong và bên ngoài đường ống ASP.Net bình thường. Phiên bản trên NuGet không chứa một lớp có tên là MvcTemplateBase. Phiên bản mới nhất trên Git, nhưng nó không phải là chung chung - nó chỉ là MvcTemplateBase. Nếu tôi thêm một dòng như @inherits RazorEngine.Razor.MvcTemplateBase tôi nhận được một ngoại lệ trong TemplateService.SetModelExplicit phàn nàn kiểu mẫu không có thuộc tính có tên là Model. Ý tưởng? –