2011-03-16 50 views
0

因此,例如DotNetOpenAuth在我的形式ASPX:剃刀符號中的模擬是什麼?

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

</form> 

又會有怎樣的它模擬ASPX在剃刀?

@using (Html.BeginForm(---???---)) {} 

---更新---

感謝所有的建議,答案是:

@using (Html.BeginForm("Authenticate", "Account", FormMethod.Post, 
     new { target = "_top", id = "openid_form" })){} 
+1

1.爲什麼在'Url.Encode'上使用'HttpUtility.UrlEncode'? 2.您應該澄清Authenticate是否是MVC操作方法。 – adamjford 2011-03-16 17:44:24

+0

@adamjford,是的,它的MVC行爲,並標記了MVC標籤。 – FFire 2011-03-16 18:19:32

回答

4

你並不需要調用BeginForm;您仍然可以在剃刀中寫入<form>標籤。

BeginForm用於發佈到MVC路由。
如果這是一個MVC的動作,你可以寫

@using(Html.BeginForm("Authenticate", new { ReturnUrl = Request.QueryString["ReturnUrl"] })) 
0
<form action="[email protected]["ReturnUrl"]" method="post" id="openid_form" %> 

</form> 

有做這件事的多種方式,雖然這是最接近您發佈的示例代碼最徹底的方法。