申し訳ありませんので、こちらです。私はSystem.Linq.Expressions.Expression
からカスタムドロップダウンボックスを作成したいと考えています。 DropDownListFor
のようなヘルパーがあることは知っていますが、最初から作成する方法や、式から値などを引き出す方法がわかりません。c#mvcからhtmlへの表現
基本的に、なぜ私はこれをやっているあなたはDropDownListFor
を使用している場合、それはvalue
だが、私は代わりにそれのテキストに基づいてオプションを「選択」したい基づいて<option>
を「選択」しますされています。ですから、誰かがそれをどうやって行うのか考えているなら、それは素晴らしいでしょう。
これは私がこれまで
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
が<option>
を選択させる、またはExpression
とSelectList
に基づいて自分自身のhtml要素を作成する方法を持つことができる方法上の任意のアイデアが大幅だろうしているものを、本質的です感謝。
ありがとうございました。
からテキストだとなぜ、あなたのビューにSelectedListItemsのリストを渡しません私は基本的にビューをクローンし、それらの特殊なケースを作成する必要があります。
さらに、DropDownListForは何とか式から値を引き出します。 –
DropDownListForは値に基づいてバインドをモデル化します。私はあなたが特別なケースを作らなければならないと言うとき、私は混乱していると思います。あなたのビューにDropDownListに送られたViewModelのプロパティとして特定の 'IEnumerable 'を渡すことはできませんか?私はこれをいつもしています、あなたは特別な場合がありますし、私はかなり理解していません。より良い例で質問を更新できますか? –