c# - asp.net 网页中 Request 和 Request.Form 的良好实践 2

标签 c# asp.net forms razor request

我正在阅读一些有关 ASP.NET 网页 2 的教程,发现一些令人困惑的内容

在此页面中:http://www.asp.net/web-pages/tutorials/working-with-pages/validating-user-input-in-aspnet-web-pages-sites以下代码:

<form method="post">
    @Html.ValidationSummary()
    <div>
        <label for="coursename">Course name: </label>
        <input type="text" name="coursename" value="@Request["coursename"]" />
        @Html.ValidationMessage("coursename")
   </div>
...

在这种情况下仅使用 Request["fieldname"] 而不是 Request.Form["fieldname"] “正确”吗?我理解(如果错误请更正)该请求还将检查查询字符串中的字段,而 request.form 只会检查表单的字段。

这可能会产生任何类型的错误/安全问题...请求的使用是好是坏...?

最佳答案

如果您使用@Request[key]请求一个值,那么框架将按照以下步骤搜索值(如果没有找到,则进入下一步):

  1. Request.QueryString[key]
  2. Request.Form[key]
  3. Request.Cookies[key]
  4. Request.ServerVariables[key]

但我认为直接从您想要的集合中获取您的值(value)是一个更好的选择。这更有利于我们应用程序的安全性,也更有利于维护。

更新:我写了一篇关于此的博文 on my blog .

关于c# - asp.net 网页中 Request 和 Request.Form 的良好实践 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22407309/

相关文章:

C# 可空整数 - 编译错误

javascript - 如何在asp中显示值:textbox using javascript

javascript - onBeforeUnload 和多种形式

c# - 我如何在 C# 中编写一个方法,一旦条件为真就返回?

c# - 多个表中具有相同名称的列导致 SubSonic Select 出现问题

asp.net - 列表框值在回发期间保持不变

c# - 在 C# 中运行 Powershell 脚本

javascript - 如何在选项标签中为同一个名称设置多个值?

c# - WCF 和 IIS 中的神秘问题?

c# - 如果 bool 变量为真,则禁用按钮