1

MVC 4 アプリケーションに次の Kendo UI DropDownListFor があり、送信時に値を null にすることはできませんというエラーが表示されます。

@Html.Kendo()
.DropDownListFor(m => m.JobTitle)
.BindTo(ViewData["Jobs"] as SelectList)

通常、ビューモデルを使用してバインディングを処理しますが、この場合はオプションではないため、リストに ViewData リストを入力しようとしています。リストはドロップダウン リストに正常に読み込まれますが、選択内容が JobTitle 値に関連付けられていません。考えられることはすべて試したので、これに関するアドバイスは大歓迎です。

4

4 に答える 4

2

ラッパーに DataTextField() および DataValueField() プロパティを指定しましたか?

例えば

         @Html.Kendo().DropDownListFor(m => m.JobTitle)
                                                .OptionLabel("Select Job Title...")
                                                .DataTextField("text")
                                                .DataValueField("value")
.BindTo(ViewData["Jobs"] as SelectList)

アップデート:

    List<SelectListItem> JobTitles = new List<SelectListItem>();
    JobTitles.Add(new SelectListItem { Value="One", Text = "One"});
    JobTitles.Add(new SelectListItem { Value="Two", Text = "Two"});  
    JobTitles.Add(new SelectListItem { Value="Three", Text = "Three"});
    JobTitles.Add(new SelectListItem { Value = "Four", Text = "Four" });
    SelectList jobs = new SelectList(JobTitles, "value","text");
    ViewData["Jobs"] = jobs;

更新 2:

 @Html.HiddenFor(m => m.JobTitle)
 @(Html.Kendo().DropDownList().Name("JobTitlesList").OptionLabel("Select Job Title...").Events(e => {
                e.Change("listChange");
            }).BindTo(new SelectList((IEnumerable<string>)ViewData["Jobs"])))


//JScript event handler

function listChange(e) 
  {
     //console.log(e);
     $('#JobTitle').val(e.sender.text());
  }
于 2013-05-10T14:42:39.187 に答える
1

これを試すことができます:コード

@(Html.Kendo().DropDownListFor(m => m)
 .DataTextField("Text")
              .DataValueField("Value")
              .BindTo(new List<SelectListItem>() {
              new SelectListItem() {
                  Text = "Select",
                  Value = null
              },
              new SelectListItem() {
                  Text = "Yes",
                  Value = true.ToString()
              },
              new SelectListItem() {
                  Text = "No",
                  Value = false.ToString()
              }
          })
.HtmlAttributes(new { data_value_primitive = "true" }))

任意の提案: vishalroxx7@gmail.com

于 2014-04-21T07:43:32.120 に答える