2009-09-17 70 views

回答

5

本質上,它輸出一個

<form> 

代碼插入HTML輸出。如果您的頁面POST(即按下按鈕來提交表單),則表單標記是必需的,以便瀏覽器知道提交表單的位置。 它可能正在爲你工作的原因是因爲你可能沒有任何按鈕 - jsut鏈接(我不知道你的應用程序是什麼,所以只是在這裏猜測)。

簡而言之:如果您希望能夠將表單提交給某個操作,那麼該標籤是必需的。如果你通過鏈接完成,你不需要需要表單標籤,因此BeginForm並不是真的需要。

HTH。

P.S.閱讀Scott Guthrie的關於ASP.NET MVC的博客文章,他們真的幫助了很多,以幫助您入門。

+0

不太確定這是如何回答真正的問題。 – 2009-09-18 01:47:54

+0

我可以寫出我自己的表單和操作標籤,它們可以正常工作。這種方法的重點在於抽象出功能並使其具有適應性。 – 2009-09-18 01:48:33

0

根本沒有必要。它只是幫助您設置窗體標籤。儘管使用它是一個好主意。我的直覺表示,他們會加強這個幫手來處理XSS攻擊等事情,您目前必須使用AntiForgeryToken幫助程序和關聯屬性來處理這些攻擊。

3

BeginForm()只是使用提供給它的參數來寫出表單標籤。如果你沒有表單,你不會或者如果你正在做所有與AJAX的頁面交互,你可能不需要它。如果您只有頁面上的鏈接,那麼表單是不必要的。但是,除非您使用AJAX,否則無法使用POST請求發送到您的控制器操作,而無需使用它來手動注入表單標記或注入表單標記。