0

thisを見ました、別の Q があります。次のようなビューがあります。

@model myPrj.Models.RollCallModel
...
<table>
    <tr> //Master DDL
       <td>
          @Html.LabelFor(model => model.CourseID) 
          @Html.DropDownListFor(model => model.CourseID,
            new SelectList(new myPrj.Models.myDbContext().Courses
               .Where(c => c.StatusID == 0), "ID", "ID"), 
            "choose...", new { id = "ddlCourse"})
          @Html.ValidationMessageFor(model => model.CourseID)
       </td>
     </tr>
     <tr> //Detail DDL
        <td>
            @Html.LabelFor(model => model.PersonnelID) 
            @Html.DropDownListFor(model => model.PersonnelID,
                 null, "choose another...", new { id = "ddlPersonnel"})
            @Html.ValidationMessageFor(model => model.PersonnelID)
        </td>
     </tr>
</table>
...

jquery を使用したカスケード更新については十分に理解しています。<option>something</option>私の Q は、詳細 DDLの反復を記述する必要なく、これらの DDL に対してカスケード更新を実行することは可能ですか? いいえの場合、最も便利な代替手段は何ですか?

注: 実際には、モデル バインディングの規則により、html ヘルパーを使用して詳細 DDL をレンダリングしようとしています。でレンダリングするしかない場合、この要素をモデル<select id=""></select>にバインドするにはどうすればよいですか?select

ありがとう

更新:方法がないようです...(まだ待っていて、実際に検索しています...)

4

2 に答える 2

0

うん!もちろんあります:詳しくはこちらをご覧ください。ただし、詳細 DDL ごとに追加のアクション メソッドと部分ビューが必要です。

最後に、JQuery を<options>使用して JsonResult を繰り返し追加することにしました...

于 2013-06-04T12:48:47.843 に答える
0

MVC でドロップダウンリストを設定するには、ビューでこれを代替として使用します。

@Html.DropDownListFor(model => model.CourseID, new SelectList((IList<SelectListItem>)ViewData["MyCourse"],
                                            "Value", "Text"), new { @class = "span5" })

ビューをサポートするには、対応するコントローラー アクションに次のように記述する必要があります。

public ActionResult RoleList(int id)
{
     ViewData["MyCourse"] = FillCourseList(id);
     CourseModel model = new CourseModel();
     model.courseid= id;
     return View(model);
}

ViewData を埋めるには、次のように、同じコントローラーに対応する関数が必要です。

public IList<SelectListItem> FillCourseList(int id)
        {
            List<master_tasks> lst = new List<master_tasks>();
            lst = _taskInterface.getMasterTasks();
            IList<SelectListItem> items = new List<SelectListItem>();

            items.Add(new SelectListItem
                {
                    Text = "Select Task",
                    Value = "0"
                });
            for (int i = 0; i < lst.Count; i++)
            {
                items.Add(new SelectListItem
                {
                    Text = lst[i].code + " - " + lst[i].name,
                    Value = lst[i].id.ToString()
                });
            }
            return items;
        }

IList は、IEnumerable 項目の Html.Dropdownlist に型キャストされたリスト項目を含む汎用リストです。

于 2013-06-04T12:53:12.863 に答える