第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用標(biāo)簽助手在選擇元素中選擇一個(gè)選項(xiàng)

使用標(biāo)簽助手在選擇元素中選擇一個(gè)選項(xiàng)

犯罪嫌疑人X 2024-01-03 16:29:22
這是我的情況:在 ASP.NET Core 應(yīng)用程序中,我需要從模型實(shí)例在 Razor 視圖中生成以下 HTML 代碼:<select name="CultureName">    <option value="de-DE" data-summary="Deutsch (Deutschland)">* Deutsch (Deutschland)</option>    <option value="de-AT" data-summary="Deutsch (?sterreich)">* Deutsch (?sterreich)</option>    <option value="de-CH" data-summary="Deutsch (Schweiz)">* Deutsch (Schweiz)</option>    <option value="en-GB" data-summary="Englisch (Gro?britannien)" selected>Englisch (Gro?britannien)</option>                                                                   ^^^^^^^^- important!    <option value="en-US" data-summary="Englisch (USA)">Englisch (USA)</option></select>模型的屬性CultureName值為“en-GB”。該模型還具有所有可用選項(xiàng)的列表。我使用的 Web 前端框架支持單獨(dú)的data-summary屬性,需要在每個(gè)元素上設(shè)置該屬性<option>,以及為簡(jiǎn)潔起見(jiàn)而在此處省略的其他屬性。選項(xiàng)之一由selected屬性預(yù)先選擇。我無(wú)法使用預(yù)定義的SelectListItem類,因?yàn)樗恢С指郊訉傩浴K晕覄?chuàng)建了自己的SelectListOption類,它看起來(lái)相似但具有附加屬性。我有一個(gè)標(biāo)簽助手,可以讓我這樣寫(xiě):<select asp-for="CultureName">    @foreach (var culture in Model.Cultures)    {        <option item="@culture"></option>    }</select>這是代碼:[HtmlTargetElement("option", ParentTag = "select", Attributes = "item")]public class OptionTagHelper : TagHelper{    public SelectListOption Item { get; set; }    public override void Process(TagHelperContext context, TagHelperOutput output)    {        if (Item != null)        {            output.Content.SetContent(Item.Text);            output.Attributes.SetAttribute("value", Item.Value);            if (Item.Summary != null)                output.Attributes.SetAttribute("data-summary", Item.Summary);            if (Item.HtmlText != null)                output.Attributes.SetAttribute("data-html", Item.HtmlText);            if (Item.HtmlSummary != null)                output.Attributes.SetAttribute("data-summary-html", Item.HtmlSummary);        }    }}它填充<option>模型中元素的其他屬性。這很好用,但渲染頁(yè)面時(shí)會(huì)忽略選擇。因此,用戶將看到包含所有選項(xiàng)的列表,但缺少當(dāng)前選擇。
查看完整描述

1 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

你沒(méi)有對(duì) 做任何事情asp-for。這不是魔法。如果您查看其中一個(gè)內(nèi)置標(biāo)記幫助程序的代碼,您將看到它們具有用于捕獲此內(nèi)容的屬性,大致如下:

[HtmlAttributeName("asp-for")]
public ModelExpression For { get; set; }

然后,您必須使用此屬性通過(guò)讀取值來(lái)實(shí)際設(shè)置所選選項(xiàng)。盡管如此,如果您簡(jiǎn)單地從 繼承標(biāo)簽助手SelectTagHelper,然后重寫(xiě)Process以執(zhí)行您自己的邏輯,您可能會(huì)得到更好的服務(wù)。base.Process不過(guò)也要記得打電話。


查看完整回答
反對(duì) 回復(fù) 2024-01-03
  • 1 回答
  • 0 關(guān)注
  • 173 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)