HTMLフォームで、通常のプリミティブ型をモデルにバインドするのと同じ方法で、jqueryコントロール(tokeninputなど)をどのようにバインドしますか?私はこれを行う方法を見つけるのに苦労しており、カスタムテンプレートなどを使用できることは知っていますが、jqueryプラグインには何もありません。
具体的には、tokenInputを使用しています。こちら(http://loopj.com/jquery-tokeninput/)を参照してください。これは、標準のHTMLテキスト入力に対して適用するjQueryコードです。キーを押すたびに、作成者のリストを返すためにコントローラーに移動します。作成者を事前入力することもできます。HTML5のデータタグを使用して、コントロールを事前入力します。
 $("#AUTHORs").tokenInput('/author/getauthors/', {
        hintText: "Enter surname",
        searchingText: "Searching...",
        preventDuplicates: true,
        allowCustomEntry: true,
        highlightDuplicates: false,
        tokenDelimiter: "*",
        resultsLimit: 10,
        theme: "facebook",
        prePopulate: $('#AUTHORs').data('AUTHORs')
    });
モデルにバインドしようとしているものを正確に示すために、ビューから少しコードを投稿しました。
@model myModels.BOOK
@{
    ViewBag.Title = "Edit";
}
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Basic</legend>
        <div class="editor-label">
            @Html.LabelFor(model => model.TITLE)
        </div>
        <div class="editor-field" >
            @Html.EditorFor(model => model.TITLE)
            @Html.ValidationMessageFor(model => model.TITLE)
        </div>
    <div class="authors">
            <div class="editor-field">
                <input type="text" id="authors" name="authors" data-val="true"  data-val-required="You must enter at least one author" data-authors="@Json.Encode(Model.AUTHORs.Select(a => new { id = a.AUTHOR_ID, name = a.FULL_NAME }))"/>
                <span class="field-validation-valid" data-valmsg-for="authors" data-valmsg-replace="true"></span>
            </div>
        </div>
        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>
}
フォームでモデルを更新しようとするときに([保存]を押した後)使用するコードは次のとおりです。
  [HttpPost]
        public ActionResult Edit(BOOK book)
        {
             if (ModelState.IsValid)
            {
                db.Entry(book).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Details", new { id = book.REF_ID });
            }
            ViewBag.REF_ID = new SelectList(db.REFERENCEs, "REF_ID", "REF_ID", book.REF_ID);
            return View(book);
        }
HTMLのコードを見ると、tokeninput要素から作成者をフォーマットしているように見えますが、このフォーマットには実際の問題があるようです。
<input type="text" id="AUTHORs" name="AUTHORs" data-val="true" data-val-required="You must enter at least one author" data-authors="
[{"id":156787,"name":"Faure,M."},
{"id":177433,"name":"Wang,D.Z."},
{"id":177434,"name":"Shu,L.Sh"},
{"id":177435,"name":"Sheng,W.Z."}]"
style="display: none; ">