这个代码在openid mvc3示例中做了什么?

时间:2013-06-06 08:06:20

标签: asp.net-mvc asp.net-mvc-3

我在mvc3 razor中使用openid, 请解释此代码

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

1 个答案:

答案 0 :(得分:1)

简而言之,它会将用户重定向到“身份验证”状态。 action *并传递当前的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" 

它是一个表单标签。表单标记具有操作属性。表单的action属性指定在提交表单时向其发送表单数据的位置(url)。在这种情况下,指定的URL是&#34; Authenticate?ReturnUrl=@HttpUtility.UrlEncode(Request.QueryString [&#34; ReturnUrl&#34;])&#34;

让我们剖析网址。 &#39;身份验证&#39;它是一个url的名称,它可能是同一个控制器中的一个动作(post url只会在最后一个斜杠之后替换这个代码用于相对url的东西)。

然后url有一个带有称为ReturnUrl的参数的查询字符串。此参数的值是当前窗口查询字符串中的ReturnUrl的url编码形式。它重新编码查询字符串以重新转换&#34; &#34; s to&#34;%20&#34; s等。