Javascript 通过Ajax Asp.NETMVC传递HTML代码

Javascript 通过Ajax Asp.NETMVC传递HTML代码,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,我尝试通过Ajax传递html代码,如下所示: 使用插件“summernote”(所见即所得编辑器) 举个例子: <span style="font-weight: bold;">asdasdasd<span>sadasd 通过删除“ValidateInput和allowtml属性,您需要在属性中设置该属性,从而解决此问题 默认情况下,Asp.Net MVC不允许用户提交html以避免对应用程序的跨站点脚本攻击 验证输入属性 这是允许提交HTML的简单方法。此属性可以在

我尝试通过Ajax传递html代码,如下所示:

使用插件“summernote”(所见即所得编辑器)

举个例子:

<span style="font-weight: bold;">asdasdasd<span>sadasd

通过删除“ValidateInputallowtml属性,您需要在属性中设置该属性,从而解决此问题

默认情况下,Asp.Net MVC不允许用户提交html以避免对应用程序的跨站点脚本攻击

验证输入属性

这是允许提交HTML的简单方法。此属性可以在控制器级别或任何操作方法上启用或禁用输入验证。 在控制器级别验证输入

[ValidateInput(false)]
public class HomeController : Controller
{
 public ActionResult AddArticle()
 {
 return View();
 }

 [HttpPost]
 public ActionResult AddArticle(BlogModel blog)
 {
 if (ModelState.IsValid)
 {

 }
 return View();
 }
}
现在,用户可以成功提交此控制器的Html。 在操作方法级别验证输入

public 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属性

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; }
} 
allowtml属性

这是允许提交特定属性的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; }
} 

确保已从Conroller或Action方法中删除ValidateInput属性。现在,用户只能成功提交Description属性的Html。

您需要找到来自服务器的500错误代码的根本原因。原因是“是的,我在您的问题中读到了”。这并没有改变这样一个事实,即您需要找到500错误代码的根本原因。找出服务器被
阻塞的原因,以及我如何找到原因?PS:编辑帖子你已经找到了一个解决方法,但它可能不是最优雅的。如果我是你,我会查看错误日志,看看异常是什么。如果您不知道如何查看错误日志,请删除所有内容并专注于此,因为您需要在应用程序中设置日志!是一个开始的好地方。^要在视图中显示html,请使用:@html.Raw(“”);这是你答案中唯一遗漏的东西,那就是我在寻找的。谢谢只需将[ValidateInput(false)]放入方法中即可。编辑:我没有使用模型。。。
[ValidateInput(false)]
public class HomeController : Controller
{
 public ActionResult AddArticle()
 {
 return View();
 }

 [HttpPost]
 public ActionResult AddArticle(BlogModel blog)
 {
 if (ModelState.IsValid)
 {

 }
 return View();
 }
}
public class HomeController : Controller
{
 public ActionResult AddArticle()
 {
 return View();
 }

 [ValidateInput(false)]
 [HttpPost]
 public ActionResult AddArticle(BlogModel blog)
 {
 if (ModelState.IsValid)
 {

 }
 return View();
 }
}
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; }
}