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

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

如何將IEnumerable列表傳遞到MVC中的控制器(包括復(fù)選框狀態(tài))?

如何將IEnumerable列表傳遞到MVC中的控制器(包括復(fù)選框狀態(tài))?

臨摹微笑 2019-09-24 10:57:57
我有一個(gè)mvc應(yīng)用程序,其中使用了這樣的模型: public class BlockedIPViewModel{    public string  IP { get; set; }    public int ID { get; set; }    public bool Checked { get; set; }}現(xiàn)在我有一個(gè)視圖來綁定這樣的列表:@model IEnumerable<OnlineLotto.Web.Models.BlockedIPViewModel>@using (Html.BeginForm()){  @Html.AntiForgeryToken()}@foreach (var item in Model) {<tr>    <td>        @Html.HiddenFor(x => item.IP)                   @Html.CheckBoxFor(x => item.Checked)    </td>    <td>        @Html.DisplayFor(modelItem => item.IP)    </td></tr>}<div>    <input type="submit" value="Unblock IPs" /></div>現(xiàn)在,我有一個(gè)控制器可以從“提交”按鈕接收操作: public ActionResult BlockedIPList(IEnumerable<BlockedIPViewModel> lstBlockedIPs) {  }但是當(dāng)我進(jìn)入控制器動(dòng)作時(shí),我得到的lstBlockedIPs為空值。我需要在這里獲取復(fù)選框狀態(tài)。請(qǐng)幫忙。
查看完整描述

2 回答

?
呼啦一陣風(fēng)

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

請(qǐng)改用列表,然后將foreach循環(huán)替換為for循環(huán):


@model IList<BlockedIPViewModel>


@using (Html.BeginForm()) 

    @Html.AntiForgeryToken()


    @for (var i = 0; i < Model.Count; i++) 

    {

        <tr>

            <td>

                @Html.HiddenFor(x => x[i].IP)           

                @Html.CheckBoxFor(x => x[i].Checked)

            </td>

            <td>

                @Html.DisplayFor(x => x[i].IP)

            </td>

        </tr>

    }

    <div>

        <input type="submit" value="Unblock IPs" />

    </div>

}

或者,您可以使用編輯器模板:


@model IEnumerable<BlockedIPViewModel>


@using (Html.BeginForm()) 

    @Html.AntiForgeryToken()

    @Html.EditorForModel()   

    <div>

        <input type="submit" value="Unblock IPs" />

    </div>

}

然后定義~/Views/Shared/EditorTemplates/BlockedIPViewModel.cshtml將為集合的每個(gè)元素自動(dòng)呈現(xiàn)的模板:


@model BlockedIPViewModel

<tr>

    <td>

        @Html.HiddenFor(x => x.IP)

        @Html.CheckBoxFor(x => x.Checked)

    </td>

    <td>

        @Html.DisplayFor(x => x.IP)

    </td>

</tr>

您在控制器中獲得null的原因是因?yàn)槟蛔袷啬J(rèn)模型綁定程序希望成功綁定到列表的輸入字段的命名約定。我邀請(qǐng)你閱讀following article。


閱讀完后,請(qǐng)結(jié)合我的示例和您的示例查看生成的HTML(更具體地說是輸入字段的名稱)。然后進(jìn)行比較,您將了解為什么您的列表不起作用。


查看完整回答
反對(duì) 回復(fù) 2019-09-24
  • 2 回答
  • 0 關(guān)注
  • 764 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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