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

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

為包含復(fù)雜對(duì)象列表的復(fù)雜對(duì)象制作編輯器表單

為包含復(fù)雜對(duì)象列表的復(fù)雜對(duì)象制作編輯器表單

C#
HUX布斯 2023-09-16 20:19:42
我正在開(kāi)發(fā)一個(gè) MVC 項(xiàng)目,在該項(xiàng)目中,我試圖在將其提交到數(shù)據(jù)庫(kù)之前檢查已由控制器處理的復(fù)雜對(duì)象列表。問(wèn)題的關(guān)鍵在于兩個(gè)部分。首先,視圖顯示每個(gè)對(duì)象,并帶有“保留此”復(fù)選框(即:此對(duì)象適合添加)其次,復(fù)雜對(duì)象都來(lái)自一個(gè)源 - 但每個(gè)復(fù)雜對(duì)象列表可以有多個(gè)源。我還需要為每個(gè)源顯示一個(gè)復(fù)選框,每個(gè)源僅顯示一次,表示不同的標(biāo)志(不保留,但如果源完整或僅部分)因?yàn)檫@是關(guān)于程序生成的地圖,所以有兩件事是:地圖圖塊列表(復(fù)雜對(duì)象的列表) - 每個(gè)圖塊都有一個(gè)復(fù)選框,如果我們保留它以添加到數(shù)據(jù)庫(kù),或者忽略它。地圖標(biāo)識(shí)符(源)- 每次運(yùn)行都有一個(gè)復(fù)選框,指示我們是否知道這些是本次運(yùn)行的所有圖塊,還是只有少數(shù)圖塊。到目前為止我是如何解決這個(gè)問(wèn)題的:在我看來(lái),當(dāng)我不擔(dān)心區(qū)分源時(shí),我使用了 EditorForModel。這對(duì)于讓復(fù)選框返回到帖子中非常有用<form asp-controller="Process" asp-action="Keep" method="post">    <input type="submit" value="Submit Data" id="btnSubmit" />    <hr />    @Html.EditorForModel()    <input type="submit" value="Submit Data" id="btnSubmit" />    <hr /></form>帶有原始模型的模板,即地圖的每個(gè)圖塊。這并沒(méi)有區(qū)分地圖 - 我只是將所有圖塊(無(wú)論它們來(lái)自哪個(gè)地圖)以單個(gè)列表的形式傳遞給視圖。這非常有效,我的后期操作將不同的地圖分開(kāi)來(lái)單獨(dú)處理每個(gè)地圖及其圖塊。觀點(diǎn)基本上是:- Tile 1 CheckBox: Keep[]?- Tile 2 CheckBox: Keep[]?- Tile 3 CheckBox: Keep[]?... and so on不關(guān)心它們來(lái)自哪張地圖。地圖信息仍然存在(它位于每個(gè)圖塊對(duì)象上),我只是在“發(fā)布”操作中對(duì)其進(jìn)行處理,以將它們正確地分離到地圖中。但現(xiàn)在,我想添加判斷給定地圖的圖塊列表是否完整的功能。我的目標(biāo)是一個(gè)復(fù)選框 - 看起來(lái)像這樣:Map Identifier map1  CheckBox: Complete? [] - Tile 1 for map1    CheckBox: Keep[]? - Tile 2 for map1    CheckBox: Keep[]? - ... and so onMap Identifier map2  CheckBox: Complete? [] -Tile 1 for map2     CheckBox: Keep[]? - ... ect我不知道每次處理嘗試會(huì)有多少個(gè)圖塊或地圖。所以我試圖做的是創(chuàng)建一個(gè)新的 ViewModel :    public class MultipleMapIdentifiers    {        [Display(Name = "Map: ")]        public string MapIdentifier { get; set; }        public List<TileInformation> TileInformationList{ get; set; }        [Display(Name = "Full Run? ")]        public bool FullRun { get; set; }    }然后,在返回 Review 視圖之前,我只需瀏覽所有提交的圖塊,獲取不同的 MapIdentifier,然后循環(huán)遍歷圖塊以查找具有相同 mapID 的圖塊,并將它們一起放入此視圖對(duì)象中的列表中。然后我使用新的編輯器模板創(chuàng)建了新視圖。起初,我只是在 MultipleMapIdentifiers EditorTemplate 中使用 @foreach 循環(huán)來(lái)顯示每個(gè)圖塊。讓他們表現(xiàn)得很棒。調(diào)用 Post 時(shí)返回空列表。其次,我嘗試為每個(gè)項(xiàng)目調(diào)用部分視圖 - 仍然是 MultipleMapsIdentifiers EditorTemplate 中的 Foreach 循環(huán),但它調(diào)用了我希望能夠正常用于編輯器復(fù)選框的 TileInformation 模板。請(qǐng)記住 - 如果我們想要保留此圖塊或?qū)⑵渥鳛閴?重復(fù)圖塊丟棄,則每個(gè)圖塊信息都有其自己的復(fù)選框。這也只向發(fā)布操作返回空的圖塊列表。有沒(méi)有辦法做到這一點(diǎn),我所希望的?如何獲取帶有復(fù)選框的列表,將其完整返回到“發(fā)布操作”,以便我可以在添加到數(shù)據(jù)庫(kù)之前刪除我們不想保留的列表?
查看完整描述

1 回答

?
拉風(fēng)的咖菲貓

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

如果有人正在搜索并降落在這里:


我最終向通用模型添加了幾個(gè) [NotMapped] 屬性,首先包括一個(gè) bool 屬性。如果第一個(gè)標(biāo)志為 true,則它會(huì)顯示地圖標(biāo)識(shí)符字符串和其他任何內(nèi)容,否則它僅使用 razor 中的隱藏字段來(lái)推送其余模型版本的數(shù)據(jù)。


@if (Model.First)

{

    <div class="row mb-3 bg-info rounded">



        <div class="col-sm-2 font-weight-bold border-bottom border-light mb-2 align-items-center">

            @Html.DisplayNameFor(a => a.MapIdentifier)

        </div>

        <div class="col-sm-7 font-italic text-truncate border-bottom border-light mb-2 align-items-center">

            <div class="display-field">

                @Html.DisplayFor(a => a.MapIdentifier)

            </div>

            <div class="editor-field">

                @Html.HiddenFor(a => a.MapIdentifier)

                @Html.ValidationMessageFor(a => a.MapIdentifier)

            </div>

        </div>

        <div class="col-sm-3 border-bottom border-light mb-2">

            <p class="text-center"><span>@Html.CheckBoxFor(a => a.FullRun)</span>  <b>Was this a Complete Run?</b></p>

            <p class="text-center"><span>@Html.CheckBoxFor(a => a.MapPointsRecorded)</span>  <b>Recording Map Points?</b></p>

        </div>

        <div class="editor-field">

            @Html.HiddenFor(a => a.First)

            @Html.ValidationMessageFor(a => a.First)

        </div>

    </div>

}

else

{

    <div class="editor-field">

        @Html.HiddenFor(a => a.MapIdentifier)

        @Html.ValidationMessageFor(a => a.MapIdentifier)

    </div>

}

可能不是最優(yōu)雅的解決方案,但它目前有效。


查看完整回答
反對(duì) 回復(fù) 2023-09-16
  • 1 回答
  • 0 關(guān)注
  • 165 瀏覽

添加回答

舉報(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)