1

如何转换这一行:

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

...对于 Razor,例如,看起来类似于以下内容:

(@using(Html.BeginForm("Authenticate", )

4

1 回答 1

1
@using( Html.BeginForm( "Authenticate", "[controller name here]", 
    new { ReturnUrl = HttpUtility.UrlEncode( Request.QueryString["ReturnUrl"] ) }, 
    FormMethod.Post ) ) {

    @* form here *@
}

您想使用BeginForm()允许传递路由值的重载,并指定表单方法。此重载还需要控制器的名称。

许多辅助方法使用匿名类型作为名称/值对的简写。

例如,new { ReturnUrl = "foo" }将转换为RouteValueDictionary具有“ReturnUrl”作为键,“foo”作为值的单个项目。然后将其提供给匹配的操作方法。

于 2013-06-01T08:21:10.150 回答