Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何允许使用MathJax的Asp.net MVC 3 web应用程序接受用户输入$xz$?_Javascript_Asp.net Mvc 3_Xss_Csrf_Mathjax - Fatal编程技术网

Javascript 如何允许使用MathJax的Asp.net MVC 3 web应用程序接受用户输入$xz$?

Javascript 如何允许使用MathJax的Asp.net MVC 3 web应用程序接受用户输入$xz$?,javascript,asp.net-mvc-3,xss,csrf,mathjax,Javascript,Asp.net Mvc 3,Xss,Csrf,Mathjax,我正在使用Asp.NETMVC3+Razor+MathJax开发一个数学网站。 MathJax是一个javascript库,用于在web浏览器上呈现TeX或LaTeX代码。 TeX或LaTeX代码表示数学内容,如内联数学$y=mx+c$和显示的数学\[y=mx+c\] 现在我的站点可以接受输入,例如,$x您应该使用on-your-action方法 [ValidateInput(false)] public ViewResult Create() { } 编辑 如果您使用.NET4,请不要忘记

我正在使用Asp.NETMVC3+Razor+MathJax开发一个数学网站。 MathJax是一个javascript库,用于在web浏览器上呈现TeX或LaTeX代码。 TeX或LaTeX代码表示数学内容,如内联数学$y=mx+c$和显示的数学\[y=mx+c\]

现在我的站点可以接受输入,例如,$x您应该使用on-your-action方法

[ValidateInput(false)]
public ViewResult Create() {

}
编辑 如果您使用.NET4,请不要忘记按如下方式添加到web.config

<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0"/>
</system.web>
</configuration>
您应该在您的操作方法上使用

[ValidateInput(false)]
public ViewResult Create() {

}
编辑 如果您使用.NET4,请不要忘记按如下方式添加到web.config

<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0"/>
</system.web>
</configuration>

在ASP.NET MVC 3中,您可以用属性修饰需要接受此输入的模型的属性。通过这种方式,您不会被迫禁用整个控制器操作的输入验证,而该操作以前是通过使用属性对其进行修饰来完成的。那么你的模型呢

public class MathematicsViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }

    [AllowHtml]
    public string MathematicFormula { get; set; }
}
然后让控制器执行以下操作:

[HttpPost]
public ActionResult(MathematicsViewModel model)
{
    // model.MathematicFormula will now accept input like  $x<y>z$
    ...
}

在ASP.NET MVC 3中,您可以用属性修饰需要接受此输入的模型的属性。通过这种方式,您不会被迫禁用整个控制器操作的输入验证,而该操作以前是通过使用属性对其进行修饰来完成的。那么你的模型呢

public class MathematicsViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }

    [AllowHtml]
    public string MathematicFormula { get; set; }
}
然后让控制器执行以下操作:

[HttpPost]
public ActionResult(MathematicsViewModel model)
{
    // model.MathematicFormula will now accept input like  $x<y>z$
    ...
}

不,我不使用那个属性,不。我不使用那个属性。你有错误吗?是否正在使用ValidateInputAttribute?是否有任何错误?您正在使用ValidateInputAttribute吗?我没有设置此属性,但它仍然有效。顺便说一下,使用AllowHtml不会打开安全漏洞?@回收站,此属性允许您在模型属性中存储HTML。这意味着您在向视图显示此值时必须小心。您需要确保它是正确的HTML编码。幸运的是Razor@默认进行编码,因此如果在视图中使用@Model.MathematicFormula,您是安全的。为了完整性,我通知您。根据Steven Anderson在第571页出版的名为Pro Asp.Net MVC 2 Framework的书,只有在.Net 4中设置[ValidateInputfalse]时才需要。因此,在设置[AllowHtml]时不需要它,因为我成功地设置了[AllowHtml]。谢谢。我没有设置这个,但它仍然有效。顺便说一下,使用AllowHtml不会打开安全漏洞?@回收站,此属性允许您在模型属性中存储HTML。这意味着您在向视图显示此值时必须小心。您需要确保它是正确的HTML编码。幸运的是Razor@默认进行编码,因此如果在视图中使用@Model.MathematicFormula,您是安全的。为了完整性,我通知您。根据Steven Anderson在第571页出版的名为Pro Asp.Net MVC 2 Framework的书,只有在.Net 4中设置[ValidateInputfalse]时才需要。因此,在设置[AllowHtml]时不需要它,因为我成功地设置了[AllowHtml]。非常感谢。