gpt4 book ai didi

asp.net-mvc - HtmlEncode on Post for ASP.Net MVC 3 Html.TextAreaFor

转载 作者:行者123 更新时间:2023-12-04 01:34:00 25 4
gpt4 key购买 nike

我有一个 ASP.Net MVC 3 页面,其中有一个 Html.TextAreaFor 控件,请参阅下面的代码。如果我尝试使用尖括号中的文本将页面提交到 http post 操作,例如:<test> , 我收到一个黄色的错误屏幕说:

A potentially dangerous Request.Form value was detected from the client (RequestText="").



我不明白为什么我得到这个,因为我发现了 an article by Scott Guthrie说的是新 <%: %> .Net 4 中的语法,将自动对元素进行 HtmlEncode。由于我对 Html.TextAreaFor 控件使用了 <%: %> 语法,我认为它会自动处理这个并将尖括号转换为正确的“<”;和“>”字符串。
<% using (Html.BeginForm())
{ %>
<%: Html.ValidationSummary() %>
<h2>Enter a description of the support needed</h2>
<%: Html.TextAreaFor( m => m.RequestText, 4, 90, null) %>
<input type="submit" value="Submit" />
<% } %>

最佳答案

基本上现在,您正在对 TextAreaFor 的内容进行编码。在 输出 .这对您没有丝毫帮助,因为您正在尝试处理 输入

如果您想提交“潜在危险”的内容,您需要

1) 装饰RequestText您的 ViewModel 中的属性 [AllowHtml] . (首选)

[AllowHtml]
public string RequestText { get; set; }

2) 禁用 validateRequest
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
</system.web>

那你 必须确保在将数据提交到存储库层或数据库之前,在 Controller 中适本地清理和/或对其进行编码。

关于asp.net-mvc - HtmlEncode on Post for ASP.Net MVC 3 Html.TextAreaFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8808910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com