7

に問題があります: ビューHow to use javascript variables in C# and vise versaにこれModelを渡します:

public List<Tache> Get_List_Tache()
{
    Equipe _equipe = new Equipe();
    List<Tache> liste_initiale = _equipe.Get_List_tache();
    return liste_initiale;
}

Tacheこれは、使用したいオブジェクトのリストでありTache_description、 3 つのフィールドBegin_dateEnd_date.

私の JavaScript コードには、この関数があり、正常に動作します。

       <script>

        $(document).ready(function () {
            var date = new Date();
            var d = date.getDate();
            var m = date.getMonth();
            var y = date.getFullYear();

            $('#calendar').fullCalendar({
                theme: true,
                header: {left: 'prev,next today',center: 'title',right: 'month,agendaWeek,agendaDay'},
                editable: true,
                events: [
                         @foreach (var m in Model.Get_List_Tache())
                          {
                        @:{title : @m.Tache_description , start: @m.Begin_date , end :  @m.Begin_date }
                          }
                        ]

                });
                                        });

</script>

配列の値はテスト用であり、の値でevents埋める必要があります。次のような各要素に対して: 、および.eventsModeltitle = Tache_descriptionstart = Begin_dateend = End_date

では、どうすればこのタスクを実行できますか? 助言がありますか?

4

6 に答える 6

3

これを試して、

foreach (var item in YourList)
{
    events: [{ title: '@item.title', start: '@item.start', end: '@item.end'}]
}

したがって、このコードでは、モデル エンティティの名前を置き換えるだけです。

于 2013-07-16T08:24:01.613 に答える
3

javascript 内で foreach カミソリ ループを作成します。

var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
$('#calendar').fullCalendar({
    theme: true,
    header: {left: 'prev,next today',center: 'title',right: 'month,agendaWeek,agendaDay'},
    editable: true,
    events: [
    @
    {
      bool isFirst = true;
    }
    @foreach(var m in Model)
    {
        if(!isFirst)
        {
          @:,
        }

        @:{title: @m.Tache_description, ...<other properties here>}

        isFirst = false;
    }
    ]
});
于 2013-07-16T08:30:56.747 に答える
2

タイトルについては、title = "@Tache_description" を実行できます

Begin_date と End_date の形式/タイプがわからない場合は、日付を JavaScript 形式に読み込む関数が必要になる場合があります。そんなに難しくないはずです。

各要素をループして、要素をイベント配列に追加します。それは次のようなものです...

events = new Array()
@foreach(tache in list){
    item = { blah : blah, blah : blah };
    events.push(item);
}

この c# リストの各 c# 項目に対して、次の JavaScript 行を記述します。非常に長い JavaScript コード ブロックになる可能性がありますが、うまくいくはずです。上記は疑似コードです。

于 2013-07-16T08:29:29.350 に答える
2

Darin の回答に追加するには: 外部 JavaScript ファイルにサーバー側の変数が必要な場合は、このブログ投稿を参照してください:部分的な Razor ビューを使用して外部 JavaScript ファイルを生成する

于 2013-07-16T08:39:01.113 に答える
1

1: モデルが のリストを期待しているTache場合は、リスト全体を操作できます。

2: action を呼び出すことで、jquery ajax を json データとして使用してデータを取得できますGet_List_Tache()

于 2013-07-16T08:22:14.367 に答える
0

この JavaScript がページ内でインライン化されていると仮定すると、次のことができます。

@model IList<Tache>
<script type="text/javascript">
    var events = @Html.Raw(Json.Encode(Model.Select(x => new { title = x.Description, start = x.Begin.ToString("o"), end = x.End.ToString("o") })));

    $('#calendar').fullCalendar({
        theme: true,
        header: { 
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        editable: true,
        events: events
    });
</script>

この例では、Tache モデルに次のプロパティがあることを前提としてDescriptionBeginますEnd

public class Tache
{
    public string Description { get; set; }
    public DateTime Begin { get; set; }
    public DateTime End { get; set; }
}

また、このスクリプトが別の JavaScript ファイルにある場合でも、events後でスクリプトで使用されるグローバル変数をビューに設定できます。または、AJAX 呼び出しを使用してこのモデルを取得することもできます。

于 2013-07-16T08:25:20.867 に答える