0

Tag-it jquery プラグインを使用しています。このプラグインは、「sampleTags」という変数を使用して値を保存し、ユーザーが何かを記述してオートコンプリート機能を提供するときに使用します。

var sampleTags = ['c++', 'java', 'php', 'coldfusion']

私の質問は次のとおりです。

  1. tblTagsこのようにEFを使用して呼び出されたテーブルからタグ名を取得します

    Array MyTags=db.tblTags.ToArray();  
    

    私はasp.net mvcを使用しています.myTagsの値をsampleTags内に配置して、データに依存するオートコンプリート機能をユーザーに提供するにはどうすればよいですか?

  2. ユーザーが入力したデータを検証し、データベースを更新するにはどうすればよいですか?

この方法は私にはうまくいきませんでした

    $(function () {       
        var sampleTags = new Array();

        $.ajax({
            url: '/mp3/GetTags',
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            failure: function () { 
                 alert('Error contacting service!'); 
            },
            success: function (data) {
                for (var j = 0; j < data.d.length; j++) {
                    // Now you can use something like data.d[j].studentID;
                    sampleTags[j] = data.d[j].item;
                }

                $('#allowSpacesTags').tagit({
                    availableTags: sampleTags,
                    allowSpaces: true
                });
            }
        });
    });
4

2 に答える 2

0

MyTags変数をViewBagに設定し、ViewBagコンテンツをsampleTagsに設定するか、sampleTagsにJsonを受け取る関数があるかどうかを確認できます。

于 2012-09-05T12:13:51.880 に答える
0

個人的にはviewBagのファンではありませんが、とにかく、return JSONメソッドを使用してコントローラからビューにデータを返すのが好きです:

public JsonResult someMethod()
{
    //populate your tags into say, tagX
    return Json(tagX);
}

次に、JavaScript 側で、dataType を POST で JSON に設定して $.ajax() 呼び出しを介して JSON データを受信し、必要に応じて逆シリアル化し、プラグインが必要な場合は JavaScript 配列に変換します。

逆シリアル化に関するコメントに答えるには:

$.ajax({
                    url: '../WebServices/SomeService.asmx/SomeSearch',
                    type: 'POST',
                    data: "{'jsonFilterObject':" + JSON.stringify(jsonFilterObject) + "}",
                    contentType: 'application/json; charset=utf-8',
                    failure: function () { alert('Error contacting service!'); },
                    success: function (data) {
                        for (var j = 0; j < data.d.length; j++) {
                            //Now you can use something like data.d[j].studentID;
}
                    });
于 2012-09-05T23:03:29.863 に答える