0

我在 mvc3 razor 中使用 openid,请解释一下这段代码

<form action="Authenticate?ReturnUrl=@HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"])" method="post" id="openid_form">
4

1 回答 1

1

简而言之,它将用户重定向到“身份验证”操作*并传递当前的 ReturnUrl 查询字符串参数。

** , *示例:如果您从页面调用此表单

  http://localhost:56507/Home/Index?ReturnUrl=localhost%2fjumbo%20rob ,

它会重定向到

  http://localhost:56507/Home/Authenticate?ReturnUrl=localhost%2fjumbo%20rob 

好的,让我们剖析代码。

<form action="Authenticate?ReturnUrl=@HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"])"  method="post" id="openid_form" 

它是一个表单标签。form 标签有一个 action 属性。表单的 action 属性指定提交表单时将表单数据发送到的位置(url)。在这种情况下,指定的 url 是 "Authenticate?ReturnUrl=@HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"])"

让我们剖析一下网址。'Authenticate' 是它所在的 url 的名称,并且可能是同一个控制器中的一个动作(post url 只会真正替换最后一个斜杠之后的东西,这段代码是相对 url)。

然后,该 url 具有一个带有名为 ReturnUrl 的参数的查询字符串。此参数的值是当前窗口查询字符串中 ReturnUrl 的 url 编码形式。它重新编码查询字符串以将 " "s 重新转换为 "%20"s 等。

于 2013-06-10T02:43:05.867 回答