2013-07-30 2 views
1

webform에서 고유 ID에 대한 컨트롤이나 고유 이름에 대해 생각할 필요가 없습니다. 모든 webform이 자동으로 처리됩니다. 그래서 우리가 html 컨트롤의 ID에 이름을 할당하면 어떻게 고유 한 이름을 제공 할 수 있습니까?MVV에서 제어 할 고유 이름을 지정하는 방법

은 그냥

@Html.DropDownListFor(x => x.Field, ModelClass.MakeSelectListUtenti(Model.Destinations), new { id="Destinations"}) 

여기에 우리가 "대상"으로 제어 ID 이름을 지정 참조 작은 코드를 도와하지만 내가 어떻게 "UniqueID_"+ "대상"과 같은 이름을 지정할 수 있습니다하세요?

사람이 주위에 다른 방법이 나에게 내가 알고 싶은

@Html.DropDownListFor(x => x.Field, ModelClass.MakeSelectListUtenti(Model.Destinations), new { id= @guid.NewGuid().ToString() + "Destinations"}) 

아래처럼 할 수있는 방법을 보여줍니다. mvc4에서 새로운 기술이 도입되었다고 들었습니다. 사실인가 .... 그게 뭐야?

가능하면 mvc 3/4에 고유 한 클라이언트 측 ID를 생성하는 다양한 방법을 보여줍니다. 감사합니다

+1

왜 필요한가요? – FSou1

답변

0

,이 결코 ...하지 않다가 공식적인 방법에 그것을 할 수있다, 그래서 jQuery를 방법 제안 :

@Html.DropDownListFor(x => x.Field, ModelClass.MakeSelectListUtenti(Model.Destinations), new { originalid="Destinations"}) 

과 :

먼저 정의는 다음과 같이 DropDownList로 대신 ID를 속성 설정을 이것은 여러 번, 다음 페이지에 스크립트를 작성 넣을 수 있습니다

$(document).ready(function() { 
    $("[originalid]").each(function() { 
    var originalid = $(this).attr("originalid"); 
    $(this).attr("id", $("[originalid='" + originalid + "']").index($(this)) + "_" + originalid); 
    }); 
}) 

그리고 같은 ID가 등 "0_Destinations" "1_Destinations"로 초기화하기됩니다

+0

mvc 3/4에서 수행 할 내장 클래스가 없습니까? u는 이것을 클라이언트 측 스크립트로 해결하는 것으로 나타났습니다. – Thomas

0

코드 예제를 제공하기 위해 VS에 연결할 수 없지만 표시되는 것과 유사하지만 정수를 사용합니다.

즉석에서 드롭 다운을 생성하기 때문에 ID가 문제라고 가정합니다. 그렇지 않으면 텍스트를 분명히 바꿀 수 있습니다.

목록에서 즉시 드롭 다운을 작성하는 경우 for 루프 내에 드롭 다운을 넣고 현재 번호를 ID의 선행으로 사용합니다. 이것은 id = @myInt + "_Destinations"-> '0_Destinations', '1_Destinations'등과 같은 결과를 줄 것입니다. 나는이 패턴을 여러 번 사용했습니다. jQuery를 쉽게 선택할 수 있으며 Guid ID보다 훨씬 정돈되어 있습니다.

목록을 반복하지 않는 경우 번호를 제공하고이를 ID에 미리 보류하는 방법을 만들 수 있습니다. 내가 아는 한

관련 문제