2012-06-10 3 views
16

Mam Edit Action z Html.BeginForm. Jak mogę dodać atrybuty HTML?Html.BeginForm z atrybutami html asp.net mvc4

Znam tylko jeden sposób:

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

} 

ale jeśli mogę użyć tej metody nie mogę zdać aktualny identyfikator

Czy jest możliwe aby dodać atrybuty HTML, aby utworzyć bez modyfikowania działania URL?

+0

Używasz silnie widok maszynowy –

+0

Tak ........................... –

+1

Co to jest Aktualny identyfikator i dlaczego nie możesz go przekazać? – gdoron

Odpowiedz

32

Korekcja czego potrzebujesz to:

@using(Html.BeginForm("Edit", "Clients", new { Id=Model.Id}, 
         FormMethod.Post, new { @class = "example" })) 
{ 
} 
  • wartości trasy jak "id" są przekazywane jako trzeci parametr.
  • Atrybuty HTML, takie jak "klasa", są przekazywane jako piąty parametr.

Zobacz dokumentację MSDN.

+1

Oczywiście można również przekazać '@ id =" bla "w obiekcie piątego parametru, co będzie miało zupełnie inny skutek w ustawianiu identyfikatora HTML renderowanego znacznika formularza. – CrazyPyro

+0

Pierwsze dwa parametry mogą mieć wartość null, jeśli chcesz wysłać do tej samej akcji (metoda Post) bieżącego kontrolera, takiego jak: '@using (Html.BeginForm (null, null, nowy {Id = Model.Id}, FormMethod.Post , nowy {@class = "example"})) ' –

2

Wywoływanie poprzez actionlink z ControllerA

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

} 

LUB

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

} 
0

Parametry działania i kontroler może mieć również wartość null, aby użyć domyślnego działania:

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