2012-06-21 36 views
8

Tôi đang sử dụng trình chỉnh sửa từ giao diện người dùng Kendo, vì vậy tôi có vấn đề lớn.Cách sử dụng Trình chỉnh sửa giao diện người dùng Kendo trong asp.net mvc3 bằng dao cạo?

Tôi không biết các mục hiển thị được trình chỉnh sửa trả về như thế nào.

biên tập chuyển đổi một cái gì đó như:

<img src="someurl" /> 

tới:

lt;p&gt;&lt;img src=&quot;someurl&quot;/&gt;&lt;/p&gt; 

và tôi tiếp tục chuỗi chuyển đổi trong cơ sở dữ liệu, và cố gắng hiển thị nó với:

@Html.Raw(item.description) 

nơi mô tả là chuỗi được trả lại bởi kendo.

Vì vậy, tôi không có ý tưởng như thế nào hiển thị nó một cách chính xác trong Xem tôi

Bất kỳ trợ giúp sẽ được đánh giá cao.

+0

Bạn có thể gửi bao phần có liên quan của nhìn của bạn trông như thế nào? – nemesv

+0

Tôi thêm nó vào bài đăng của mình. –

+0

Bạn cũng có thể đăng nơi bạn xác định trình chỉnh sửa giao diện người dùng Kendo trong chế độ xem của mình không? Và cũng là hình thức cách bạn đăng dữ liệu? – nemesv

Trả lời

12

Có một tùy chọn của trình chỉnh sửa KendeUI được gọi là encoded để định cấu hình liệu Trình chỉnh sửa có nên gửi thẻ HTML được mã hóa hay không.

Giá trị mặc định cho encodedtrue

Nếu bạn wan't để lưu trữ các văn bản unencoded sử dụng sniplet này khi tạo soạn thảo của bạn:

$("#Editor").kendoEditor({ 
    encoded: false 
}); 

Nhưng vì bạn không phải gửi văn bản được mã hóa vào máy chủ trình xác thực yêu cầu Asp.net sẽ khởi động và nó sẽ hủy bỏ yêu cầu của bạn.

Nếu bạn đang sử dụng quan điểm mạnh mẽ gõ những gì bạn có thể làm là sử dụng AllowHtmlAttribute về sở hữu mô hình của bạn:

Xem:

@model MyModel 

@using(Html.BeginForm("SomeAction", "SomeController")) 
{ 
    @Html.TextAreaFor(m => m.Editor) 
    <input type="submit" value="Save" /> 
} 

<script type="text/javascript"> 
    $(function(){ 
     $("#Editor").kendoEditor({ 
     encoded: false 
     }); 
    }); 
</script> 

mẫu:

public class MyModel 
{ 
    [AllowHtml] 
    public string Editor { get; set; } 
} 

điều khiển hành động

public ActionResult SomeAction(MyModel myModel) 
{ 
    //Save to db, etc. 
} 

Bạn cũng cần phải thiết lập như sau trong web.config của bạn hoặc thuộc tính này sẽ không có hiệu lực trong .NET 4.0:

<httpRuntime requestValidationMode="2.0"/> 
+0

Cảm ơn, nhưng nó giải quyết chỉ một nửa vấn đề của tôi bởi vì có những vấn đề mới với nó. Nếu tôi đặt tùy chọn này thành 'false', tôi có vấn đề với dấu ngoặc kép và một lỗi:' Một giá trị Request.Form nguy hiểm tiềm ẩn đã được phát hiện từ máy khách'. Vì vậy, có lẽ cách tốt hơn được thiết lập 'mã hóa: true' và sử dụng một số chuyển đổi để mã hóa nó trong bộ điều khiển? Có ý tưởng nào không? –

+0

Sử dụng thuộc tính '[AllowHtml]' cho các thuộc tính được ràng buộc cho trình chỉnh sửa KendoUI. – nemesv

+0

Tôi không chắc nơi tôi nên thêm thuộc tính '[AllowHtml]'. –

5

đơn giản hơn cách để làm điều đó là thực hiện thay đổi trong điều khiển, không theo quan điểm và mô hình .Vì vậy:

Xem

$("#Editor").kendoEditor(); 

Mẫu

public class MyModel 
{ 
    public string Editor { get; set; } 
} 

khiển

Editor = Server.HtmlDecode(Editor); 

HtmlDecode

7

tôi tìm thấy giải pháp này cho MVC: trong Xem

<div class="editor-field"> 
    @(Html.Kendo().EditorFor(model => model.HtmlField).Encode(false)) 
    @Html.ValidationMessageFor(model => model.HtmlField) 
</div> 

trong mô hình:

[DataType(DataType.Html)] 
    [AllowHtml] 
    public string HtmlField{ get; set; } 

Đó là đủ

+0

anh ấy chỉ làm việc cho tôi !!!!!!!!!! Update Crud đã không nhấn vào bộ điều khiển khi sử dụng Html.Kendo(). EditorFor trong một mẫu cho cửa sổ bật lên lưới. Tôi đã thêm hai thuộc tính ở trên và nó hoạt động. Ước gì tôi có thể cung cấp cho bạn 10 upvotes !! – KeyboardFriendly

Các vấn đề liên quan