2011-02-03 7 views
2

매우 간단한 것처럼 보이려고합니다. id와 함께 요청 된 동일한 URL로 제출하는 양식을 만듭니다.id가 같은 동일한 작업으로 제출하는 양식

<% using(Html.Form()) { %> 
    <!-- stuff --> 
<% } %> 

을하지만 ID를 원하기 때문에, 나는 다른 오버로드를 사용해야합니다 :

나는 ID를 걱정하지 않은 경우, 나는 할 수있다. 양식이 다른 장소의 몇 가지에 사용되기 때문에

<% using(Html.Form(some, args, new {id="myAwesomeForm"})) { %> 
    <!-- stuff --> 
<% } %> 

난 그냥 액션 컨트롤러를 하드 코딩 할 수 없습니다

나는의 라인을 따라 뭔가를하고 싶습니다. 때로는 URL에 매개 변수가 있습니다 (/items/edit/1). 다른 경우에는 /items/create이 표시되지 않습니다.

믿을 수 없을만큼 간단한 방법이 있어야 볼 수 있습니다. 바보처럼 느껴질 수 있습니다. 그럼, 뭐지?


명확한 설명 : 나는 행동과 컨트롤러에 대한 <form action="/my/action[/possible arguments]" id="myAwesomeForm"></form>

답변

2

사용 널 (null)와 같이 HTML 요소의 ID를 의미한다; 그들은 현재 행동과 통제자로부터 채워질 것입니다.

<% using (Html.BeginForm(null, null, null, FormMethod.Post, new { id = 3 })) { %> 

<% } %> 
+0

미안하지만, 나는 내 질문을 명확히했다. HTML 속성 인'id'를 뜻하며 route 매개 변수는 의미하지 않습니다. 위의 예에서 게시 한 내용은'

'이되고, 이는 내가 원하는 것이 아닙니다. – notJim

+0

@notJim - 오, 경로 값에도 null을 사용하고 올바른 서명을 얻기 위해 FormMethod를 추가하십시오. – tvanfosson

0

그냥 최초의 과부하 (개체로 routeValues)

그것은 현재를 가정합니다, 지역 이름, 컨트롤러 이름액션 이름 매개 변수를 사용합니다. 게시이 기본 양식 방법입니다.

<% 
    Using Html.BeginForm(New With {.id = 3}) 

    End Using 
%> 
+0

설명을 확인하십시오. 경로에서 'id'가 아닌 HTML'id'를 찾고있었습니다. – notJim

+0

오케이. 당신은 항상 오래된 학교에 가서 html로 작성할 수 있습니다. ... 당신의 코드가 복잡한 HTML 도우미 메소드를 어떻게하는지 쉽게 이해할 수 있습니다. –

관련 문제