Javascript 如何允许使用MathJax的Asp.net MVC 3 web应用程序接受用户输入$xz$?
我正在使用Asp.NETMVC3+Razor+MathJax开发一个数学网站。 MathJax是一个javascript库,用于在web浏览器上呈现TeX或LaTeX代码。 TeX或LaTeX代码表示数学内容,如内联数学$y=mx+c$和显示的数学\[y=mx+c\] 现在我的站点可以接受输入,例如,$x您应该使用on-your-action方法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,请不要忘记
[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]。非常感谢。