[英]Is it possible to create a custom ASP.NET MVC strongly typed HTML Helper?
[英]MVC.NET: define a strongly typed HTML Helper for DropDownList
我試圖找出如何定義自己的HtmlHelper來創建下拉列表。 我有以下場景:我將select2 jQuery插件( http://ivaynberg.github.io/select2/ )用於具有搜索和更好界面的多項選擇。 我的模型具有x個ID的關聯標簽。 據我了解,僅當使用@ Html.DropDownListFor()之類的HTML幫助程序時,這些標簽才能獲得值。 我想要
寫純HTML並以某種方式告訴它值必須存儲在我的模型的tag-id列表中
要么
制作可以實現相同效果的HTML Helper。
目前,我已經有了這個,但是在表單發布時,我看不到將所選值傳遞給模型的方法:
<div>
<label>Kies je thema's (maximum 2):</label>
<select id="select2select" multiple style="width: 500px">
@foreach (var top in ((List<Topic>)ViewBag.TopIds).Where(top => top.MainTopic == null))
{
<option value="@top.TopicId" class="optionGroup">@top.Name</option>
foreach (var subTopic in top.SubTopics)
{
<option value="@subTopic.TopicId" class="optionChild">@subTopic.Name</option>
}
}
</select>
</div>
如何在保持此結構的同時在列表的屬性中獲取選定的值?
附加:如您所見,我的選項有類,這是因為我有Main標簽和subtags。 用戶可以選擇主標簽或子標簽,因此我不能使用<optiongroup>
因為它們的“組”必須是可選的。 根據他們的班級,我給他們提供了使用select2格式的不同格式。
請嘗試以下代碼以糾正問題
@Html.DropDownListFor(m => top.SubTopics, new SelectList(top.SubTopics, "TopicId", "Name"))
您可以通過兩種方法來執行此操作。
@Html.DropDownListFor(m => top.SubTopics, new SelectList(top.SubTopics, "TopicId", "Name"))
@Html.DropDownListFor(m => Model.SubTopics, Model.SubTopics, null, htmlAttributes: new { @class = "ui search selection dropdown clearable", @clearable = "", @id = "Model_SubTopics" })
對於不同的模型綁定,這兩個更改html屬性“名稱”值可能會有問題。
您可以使用Tag Helper以更現代的方式進行操作。
<select asp-for="Model.SubTopics" asp-items="@Model.SubTopics" class="ui search selection dropdown clearable" ></select>
如果您具有輸入表單的模型綁定,則這種方式將采用預先配置的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.