【问题标题】:How to create array from Model?如何从模型创建数组?
【发布时间】:2018-04-04 22:40:42
【问题描述】:

我是 javascript 新手,我有这段代码应该传递或转换为 jQuery。我尝试了一些代码,但它不起作用。我怎样才能正确地做到这一点?

它应该是这样的:

<script>
  $('#calendar').fullCalendar({
    defaultDate: '2017-10-12',
    editable: true,
    eventLimit: true, // allow "more" link when too many events
    events: [
        {
            title: 'Juan Dela Cruz',
            start: '2017-10-01T10:30:00',

        },
        {
            title: 'Juan Dela Cruz',
            start: '2017-10-12T10:30:00',

        },
        {
            title: 'Juan Dela Cruz',
            start: '2017-10-27T12:00:00'
        }
    ]
});

这是我尝试过的:

<script>
var x = [];
@foreach(var item in Model)
{
    @:x.push(title='@Html.DisplayFor(x=>item.Patient.LastName)', start='@Html.DisplayFor(x=>item.ScheduleDate)')
}
$('#calendar').fullCalendar({
    defaultDate: '2017-10-12',
    editable: true,
    eventLimit: true, // allow "more" link when too many events
    events: x
});

【问题讨论】:

  • 这看起来不是 jQuery 问题,而更像是 Razor 输出问题。
  • 你可以使用var x = @Html.Raw(Json.Encode(Model.Select(x =&gt; new { title = x.Patient.LastName, start = x.ScheduleDate)

标签: javascript c# jquery asp.net-mvc razor


【解决方案1】:

声明foreach in jQuery$.each,这是一个简单的示例:

$.each( obj, function( key, value ) {
  alert( key + ": " + value );
});

【讨论】:

    【解决方案2】:

    您正在使用@foreach 语句迭代更正Model

    问题出在这一行:

    @:x.push(title='@Html.DisplayFor(x=>item.Patient.LastName)', start='@Html.DisplayFor(x=>item.ScheduleDate)')
    

    你必须通过以下方式推送object

    @:x.push({title:'@item.Patient.LastName', start:'@item.ScheduleDate'});
    

    【讨论】:

    • 非常感谢。
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多