亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# 使用 Html.RenderPartial 在父視圖和子視圖之間 ASP.NET MVC

C# 使用 Html.RenderPartial 在父視圖和子視圖之間 ASP.NET MVC

C#
料青山看我應如是 2022-08-20 17:34:48
在調用時,我收到以下錯誤:@Html.RenderPartial("_ChildPartialView")System.Collections.Generic.ICollection'沒有名為'ElementAt'的適用方法,但似乎有一個名稱為該名稱的擴展方法。無法動態調度擴展方法。考慮強制轉換動態參數或調用擴展方法而不使用擴展方法語法_Testpaper.cshtml 父視圖:    for (i = 0; i < Model.Questions.Count;i++)    {        ViewBag.QuestionNumber = i;        Html.RenderPartial("_QuestionDetail"); //Line causing error    }_QuestionDetail.cshtml 子視圖:@model StandardVBA.ViewModels.AssessmentModel<tr style="padding:4px 0px; background-color:lightskyblue; font-weight:bold;font-family:Cambria;">    <td style="text-align:left;">        Q @(ViewBag.QuestionNumber + 1) &nbsp @Model.Questions.ElementAt(ViewBag.QuestionNumber).Question    </td>    <td style="text-align:center">        ( @Model.Questions.ElementAt(ViewBag.QuestionNumber).Marks )    </td></tr><tr>    <td class="questions">        <ol type="A">            @for (int j = 0; j < Model.Questions.ElementAt(ViewBag.QuestionNumber).QuestionDetails.Count; j++)            {                <li>                    <div style="display: inline-block; vertical-align: top;">                        @Html.CheckBoxFor(m => m.Questions.ElementAt(ViewBag.QuestionNumber).QuestionDetails.ElementAt(j).IsSelected)                    </div>                    @Html.DisplayFor(m => m.Questions.ElementAt(ViewBag.QuestionNumber).QuestionDetails.ElementAt(j).Choice)                    @Html.HiddenFor(m => m.Questions.ElementAt(ViewBag.QuestionNumber).QuestionDetails.ElementAt(j).IsCorrect)                </li>            }        </ol>    </td></tr>我還想知道:當子視圖在調用中共享相同的模型時,為什么必須在子視圖中指定?@ModelRenderPartial
查看完整描述

2 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

您需要將模型傳遞到子部分視圖,如下所示:


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

{

    ViewBag.QuestionNumber = i;

    Html.RenderPartial("_QuestionDetail", Model.Questions[i]); //Line causing error

}

確保 Model.Questions[i] 的類型與子部分視圖“@model StandardVBA.ViewModels.AssessmentModel”中的模型聲明匹配,否則將收到運行時錯誤。


希望它有幫助。


查看完整回答
反對 回復 2022-08-20
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

首先,您沒有將模型傳遞給子視圖,而是在子視圖中使用@model,因此通過將模型傳遞給子視圖來修復它,如下所示


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

    {

        ViewBag.QuestionNumber = i;

        Html.RenderPartial("_QuestionDetail", Model); //Line causing error

    }

其次,您正在使用@Html.CheckBoxFor(m = > m.Questions.......)在您的詳細信息視圖中,這是您的子視圖,因此您需要聲明@model......以在視圖中使用模型。


希望這將起作用!


查看完整回答
反對 回復 2022-08-20
  • 2 回答
  • 0 關注
  • 183 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號