2009-11-23 53 views
21

我喜歡的Html.BeginForm和HTML屬性的w/o指定控制器和動作

using (Html.BeginForm()) 

清潔度和討厭,添加HTML屬性需要指定的控制器,動作,和形式方法。

using (Html.BeginForm("Action", "Controller", FormMethod.Post, 
    new { id = "inactivate-form" }) 

是否有使用Html.BeginForm和指定的HTML表單屬性,而無需手動佈線一切了呢?

回答

16

爲什麼你不只是使用純html?

<form id="inactivate-form" method="post" > 
</form> 
+1

這正是ASP.NET的新用戶MVC需要了解。它不一定是全部代碼。 :) – CodeMonkey 2009-11-23 22:59:42

+0

沒有任何理由,除了試圖遵循例子。我更喜歡你的建議方法'Html.BeginForm'。 @CodeMonkey你怎麼能告訴我我是ASP.NET MVC的新用戶? :) – ahsteele 2009-11-23 23:04:39

+3

事實上,我發現如果你不使用BeginForm,你不會得到客戶端驗證的工作,因爲它不會「掛鉤」,否則。 – 2010-08-18 23:49:24

10

您可以創建一個自定義的擴展,增加了一個 '身份證-ED' 的形式:

public static MvcForm BeginIdedForm(this HtmlHelper htmlHelper, string id) 
{ 
    return htmlHelper.BeginForm(null, null, FormMethod.Post, new Dictionary<string, object>() { { "id", id } }); 
} 

用法然後就變成

using(Html.BeginIdedForm("inactiveate-form"))