当前位置: 首页 > 面试题库 >

使用ASP.net MVC和JQuery将HTML标签(代码)发布为字符串

陶温书
2023-03-14
问题内容

我试图通过MVC模型将窗体发布到控制器中的Save函数中。我还在客户端使用tinymce,这会导致基于HTML代码的字符串,例如<p> Content text blah blah ...</p>

问题是我无法发布包含以下内容的字符串,<p> something </p>但令人惊讶的是,< p > something < / p >此字符串(“
<”后带有空格)没有问题。但是,我无法处理此html代码并在每次发布之前都留出这些空格。肯定有更好的办法。

因此,如何通过$
.post方法发布包含HTML代码的字符串?(如果您必须知道,该项目是一个内容管理系统。因此,我必须将基于HTML的内容文本保存到SQL表中。)通过调试,我看到,后期操作
没有 到达Controller,我认为是唯一的JavaScript问题,对吗?

这是我正在使用的代码:
Javascript

函数JqueryFromPost(formId){

  var form = $(formId);
  var action = form.attr(“ action”);
  var serializedForm = form.serializeArray();

  $ .post(action,serializedForm,function(data){
      //在此处获取数据结果...
  });
}

CS代码

   [HttpPost]
   公共JsonResult SaveArticle(ArticleModel模型)
   {
       JsonResult JResult =新的JsonResult();

       如果(ModelState.IsValid)
           //我在此处进行保存,以“ JResult.Data =“ Success”;“结尾 (这也可能失败。因此,仅作解释)

       返回JResult;
   }

问题答案:

ASP.NET具有内置的请求验证,可自动帮助防御XSS和HTML注入攻击。如果要显式禁用此验证,则可以使用[ValidateInput(false)]属性装饰要发布到的操作:

[HttpPost]
[ValidateInput(false)]   
public ActionResult SaveArticle(ArticleModel model)
{
    var JResult = new JsonResult();
    if (ModelState.IsValid)
    {
        ...
    }
    return JResult;
}

另外,如果要在ASP.NET 4.0上运行此命令,此属性才能生效,则需要在web.config中添加以下内容:

<httpRuntime requestValidationMode="2.0" />

而且,如果您使用的是ASP.NET MVC
3.0,则可以在需要HTML的模型上仅装饰带有[AllowHtml]属性的属性:

public class ArticleModel 
{
    [AllowHtml]
    public string SomeProperty { get; set; }

    public string SomeOtherProperty { get; set; }
}

另外,在您的javascript函数中,您可能希望serialize()代替serializeArray()

function JqueryFromPost(formId) {
    var form = $(formId);
    $.post(form.action, form.serialize(), function (data) {
        //Getting the data Result here...
    });
}


 类似资料:
  • 本文向大家介绍js中去除字符串中所有的html标签代码实例,包括了js中去除字符串中所有的html标签代码实例的使用技巧和注意事项,需要的朋友参考一下 对于获取了一大堆字符串但是又不想要里面的html标签怎么办? 特别是像博客园这个富文本框中,可以带样式的,取出来的文章内容也是带样式的。 但是在某些地方只要显示文本不想显示其他标签,只好这样做。 以上就是本文的全部内容,希望对大家的学习有所帮助,也

  • 问题内容: 有谁知道一种简单的方法来从jQuery的字符串中转义HTML ?我需要能够传递任意字符串并正确地对其进行转义以显示在HTML页面中(防止JavaScript / HTML注入攻击)。我敢肯定可以扩展jQuery来做到这一点,但是目前我对框架还不了解。 问题答案: 由于您使用的是jQuery,因此只需设置元素的属性即可:

  • 问题内容: 目标: 使用jQuery,我试图替换所有出现的情况: 与: 我的解决方案: 我了解到以下内容: 我的解决方案的问题: 但是问题在于它用 第一个 “ code”标签之间的内容替换了(第二,第三,第四等)“ code”标签之间的所有内容。 例如 变成 我认为我需要使用“ this”和某种功能,但恐怕我还在学习,并且不太了解如何将解决方案组合在一起。 问题答案: 您可以将一个函数传递给 [d

  • 本文向大家介绍去除HTML标签删除HTML示例代码,包括了去除HTML标签删除HTML示例代码的使用技巧和注意事项,需要的朋友参考一下

  • 问题内容: 是否有从Java字符串中删除HTML的好方法?一个简单的正则表达式 会起作用,但是不会正确转换,并且两个尖括号之间的非HTML也会被删除(即,正则表达式中的将会消失)。 问题答案: 使用HTML解析器代替正则表达式。对于Jsoup来说,这简直太简单了。 Jsoup还支持对可定制的白名单,如果你希望只允许例如这是非常有用的去除HTML标签,和。

  • 问题内容: 我在使用jQuery 解析HTML字符串时问我如何在html字符串上使用jQuery。一切正常,但是当我将其应用于ajax时-它不起作用。这是代码。 moo.html包含 如何获得斑马纹和杠铃? 问题答案: 我认为其中的换行符可能会让您失望。 html中的所有换行符最终都将由jQuery解析并保留为文本节点元素。结果,当这些节点中的第一个被命中并调用时,它将停止迭代(不适用于非Elem