• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

模型绑定url编码的字符串mvc 3

asp.net-mvc-3 来源:Gluip 6次浏览

我正在使用MVC 3模型绑定与JQuery序列化程序()编辑窗体中的某些数据。除非在我的数据中有一些’url-encoded’(不知道更好的术语)文本,否则所有的工作都很好。这些数据就在那里,因为我使用了现在使用的富文本编辑器。模型绑定url编码的字符串mvc 3

$.post("/controller/submit", $("form").serialize(), function (r) {....} 

我的控制器就像是

[HttpPost] 
public ActionResult Confirm(MyViewModel model) 
{ 
    return PartialView(model); 
} 

一些数据,这将导致问题看起来是这样的

地点= DASD &起始日期= 5-SEP-2011 &开始时间= 0% 3A00 & endTime = 0%3A00 & EndDate = 6-sep-2011 & Title =你好& Description =%3Cstrong%3E大胆+母亲%3C%2Fstrong%3E &定价= & BuyTicketsUrl = &类别ID = 1个& URL = &买入= 0 & MaximumExpense = 0

你可以看到,说明有这样的东西%3Cstrong%3E因为它是一个带有一些html编码文本的序列化文本框。我可以获取默认模型绑定器来获取html,还是可以更改JQuery序列化表单的方式?或者我应该使用JSON?

===========解决方案如下:

.serialize()方法做它应该做的事情。在客户端没有其他需要做的事情。问题是会拒绝此输入的服务器。你可以装饰上与[AllowHtml]属性视图模型您Description属性:

[AllowHtml] 
public string Description { get; set; } 

现在默认的模型绑定将竭诚为分配该值。现在因为有些恶意用户可能会决定对您的网站做一些令人讨厌的事情,如果您打算展示这个HTML解码代码,请确保您通过AntiXss。如果你总是要显示这个HTML编码值,那么你很安全=>简单地将它存储在数据库中并通过HTML编码显示。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)