1
좋아요, 여기 거래가 있습니다. C#의 System.Linq.Expressions.Expression
에서 사용자 지정 드롭 다운 상자를 만들 수 있기를 원합니다. DropDownListFor
과 같은 도우미가 있다는 것을 알고 있지만 처음부터 만드는 방법이나 표현식에서 값을 가져 오는 방법을 모르겠습니다. 당신은 그것이 value
의 기반으로 <option>
를 '선택'할 DropDownListFor
를 사용하는 경우C# mvc 표현을 html로
는 기본적으로 내가 왜이 일을 해요,하지만 난 그것을 대신 텍스트의에 따라 옵션을 '선택'할. 그래서 누군가가 그 대신에 그것을하는 방법을 가지고 있다면 그것은 좋을 것입니다.
이
은 지금까지 내가DropDownListFor
가
<option>
선택하거나
Expression
및
SelectList
크게 될 것이다 기반으로 내 자신의 HTML 요소를 만드는 방법을 만들 수 있습니다 방법에 대한 아이디어
public static MvcHtmlString ValidatedEditableDropDownListFor<TModel,TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
SelectList list,
String defaultOption,
Object attribs)
{
//Basically puts the strings into a html template<div>{0}{1}</div> etc.
return GetValidatedHtml(
htmlHelper.LabelFor(expression).ToString() ,
htmlHelper.DropDownListFor(expression , list , defaultOption , attribs).ToString()
,htmlHelper.GetValidatedErrorMessage(expression),false,"EditableDropDown");
}
가지고있는 본질적 고맙습니다.
감사합니다. 내 양식이 하나 개의보기 때문에
의 텍스트, 그리고 내가보기에 다시 모델을 통과 ... 그렇게하기 나는 기본적으로 뷰를 복제하고, 특정 '
에 대한 특수한 경우를 생성해야합니다. 게다가 DropDownListFor는 값을 표현식에서 꺼내므로 길이 있어야합니다. –
DropDownListFor는 값을 기반으로 바인딩을 모델링합니다. 특별한 경우를 만들어야한다고 말할 때 나는 혼란스러워합니다. 보기에 DropDownList로 전송 된 ViewModel의 속성으로 특정 IEnumerable을 전달할 수 없습니까? 나는 항상 이것을한다, 어쩌면 너는 특별한 경우가 있고 나는 아주 이해하지 않는다. 보다 나은 예제로 질문을 업데이트 할 수 있습니까? –