我在 mvc3 razor 中使用 openid,请解释一下这段代码
<form action="Authenticate?ReturnUrl=@HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"])" method="post" id="openid_form">
我在 mvc3 razor 中使用 openid,请解释一下这段代码
<form action="Authenticate?ReturnUrl=@HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"])" method="post" id="openid_form">
简而言之,它将用户重定向到“身份验证”操作*并传递当前的 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 等。