2012-06-10 95 views
16

我有編輯操作與Html.BeginForm。我如何添加HTML屬性?Html.BeginForm與HTML屬性asp.net mvc4

我知道只有一條路:

@using (Html.BeginForm("Edit", "Clients", FormMethod.Post, new { @class="example"})) { 

} 

,但如果我用這個方法我無法通過電流ID

是否可以添加HTML屬性來形成,而無需修改行動網址是什麼?

+0

你強烈地使用類型視圖 –

+0

是........................... –

+1

什麼目前的身份證,爲什麼你不能通過它? – gdoron

回答

32

您所需要的倍率:

@using(Html.BeginForm("Edit", "Clients", new { Id=Model.Id}, 
         FormMethod.Post, new { @class = "example" })) 
{ 
} 
  • 路徑的值,如 「ID」 作爲第三個參數傳遞。
  • HTML屬性,如「階級」作爲第五個參數傳遞。

MSDN文檔。

+1

當然,您也可以在第五個參數對象中傳遞'@ id =「blah」',這將對設置呈現的表單標記的HTML標識具有完全不同的效果。 – CrazyPyro

+0

如果要發佈到當前控制器的相同操作(Post方法),則前兩個參數可以爲null: '@using(Html.BeginForm(null,null,new {Id = Model.Id},FormMethod.Post ,新{@class =「example」}))' –

2

通過ActionLink的從ControllerA調用

@using (Html.BeginForm("Create", 
    "StudentPChoice", 
    new { StudentPChoiceId = Model.StudentPChoiceId }, 
    FormMethod.Post)) 
{ 

} 

OR

@using (Html.BeginForm("Create", 
    "ControllerB", 
    new { ControllerBId = Model.ControllerAId }, 
    FormMethod.Post)) 
{ 

} 
0

行動和控制器的參數也可以爲null,使用默認的動作:

Html.BeginForm(null, null, FormMethod.Post, new { id=」formname」, @class="formclass" })