通过Ajax Asp传递HTML代码.净MVC
Pass HTML code trough Ajax Asp.Net MVC
我正在尝试通过Ajax像这样传递html代码:
使用插件'summernote'(所见即所得编辑器)
var description = $('#ticketDescription').code();
给我举个例子:
<span style="font-weight: bold;">asdasdasd<span>sadasd
,当Ajax处理它时给出一个500的内部错误
$.ajax({
url: '/Ticket/NewTicket',
type: 'POST',
data: {
companyId: companyId,
subject: subject,
ticketDescription: description
},
success: function(result) {
....
},
error: function(result) {
}
});
这个问题可以通过从字符串中删除'<'字符来解决。有什么解决办法吗?由于
编辑:到目前为止我发现的唯一方法是:在javascript中:
description = escape(description);
,在控制器中:
ticketDescription = HttpUtility.UrlDecode(ticketDescription);
正确吗?
ValidateInput和AllowHtml属性是您需要在属性
中设置的内容默认为Asp。. Net MVC不允许用户为避免跨站脚本攻击而提交html。
<<p> ValidateInput属性/strong>这是允许提交HTML的简单方法。此属性可以在控制器级别或任何操作方法上启用或禁用输入验证。控制器级别的ValidateInput
[ValidateInput(false)]
public class HomeController : Controller
{
public ActionResult AddArticle()
{
return View();
}
[HttpPost]
public ActionResult AddArticle(BlogModel blog)
{
if (ModelState.IsValid)
{
}
return View();
}
}
现在,用户可以成功地为这个控制器提交Html。
操作方法级别的ValidateInputpublic class HomeController : Controller
{
public ActionResult AddArticle()
{
return View();
}
[ValidateInput(false)]
[HttpPost]
public ActionResult AddArticle(BlogModel blog)
{
if (ModelState.IsValid)
{
}
return View();
}
}
现在,用户可以成功地为这个动作方法提交Html了。
ValidateInput属性的限制这个属性也有问题,因为它允许所有属性的Html输入,这是不安全的。既然您只为一两个属性启用了Html输入,那么该如何做呢?要允许Html输入单个属性,您应该使用AllowHtml属性。
<<p> AllowHtml属性/strong>这是允许提交特定属性的HTML的最佳方式。该属性将被添加到模型的属性中,以绕过仅针对该属性的输入验证。这种显式声明比ValidateInput属性更安全。
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
public class BlogModel
{
[Required]
[Display(Name = "Title")]
public string Title { get; set; }
[AllowHtml]
[Required]
[Display(Name = "Description")]
public string Description{ get; set; }
}
确保您已经从controller或Action方法中删除了ValidateInput属性。现在,用户只能成功提交Description属性的Html。
相关文章:
- 阻止MVC视图中的C#代码在加载时执行
- MVC 4:使用 JQUERY 和 PartViewResult 动态创建 HTML 文本框.如果代码是动态添加的,如何
- 在 MVC 应用程序中组织 JS 代码
- Ajax get jsonp给出错误代码500“;请求被阻止”;来自MVC应用程序
- 用于导出Excel的.Net MVC 4.5 JqGrid按钮功能不起作用.什么'我的代码错了
- MVC:如何使用JavaScriptSerializer将代码解码为c#中编码的JS
- MVC - JS window.location.href 将代码插入 URL
- 从服务器动态生成 JavaScript 代码 - MVC 4.
- 预检响应具有无效的 HTTP 状态代码 405 - AngularJS + Spring MVC
- 在 MVC 中更改文本框日期时 asp.net 触发控制器代码
- 在代码点火器中将代码转换为 MVC 类型
- “样式”代码在 MVC 模式中的位置
- 有哪些可能的方法可以将 knockoutjs 视图模型代码与 asp.net mvc 视图分离,并对其进行 mvc 服务
- 在 MVC Razor foreach 循环中编写 JavaScript 代码
- 如何在客户端使用HTML5 / Javascript和控制器上的C#代码在MVC中将录制的视频作为blob发布/上传
- 如何在 ASP.NET MVC 应用程序中组织 JavaScript 代码
- 在 MVC 服务器端代码中动态创建和缩小 JavaScript ASP.NET
- 如何在MVC中使用cryptoJs解密代码背后的加密值
- 在MVC的视图文件夹中将Razor代码转换为aspx代码
- 在c#代码MVC . net中检索html中的id元素