嗨,我正在开发一个mvc4 jquery应用程序。我已经动态生成了隐藏字段,并且将一些值绑定(bind)到它,如下所示。

@foreach (var group in Model.detailsbyclientId) {
    <tr>
        <td> @group.clientName </td>
        <td> @group.employeeId </td>
        <td> @group.employeeName </td>
        <td>@group.Nationality</td>
        <td> @group.documentType </td>
        <td scope="col">
            <input type="button" class="btn btn-primary btn-cons" value="View Document" onclick="showDocumentData('@group.upld_Id');" />
        </td>
        <td id="Hi">@group.currentStatus</td>
        <td><input type="hidden" id="Status" value="@group.currentStatus"/></td>
        <td></td>
    </tr>
}

在某些时间点,@group.currentStatus的值将为NotVerified。例如,如果我生成5行数据,则所有5行的值都将为NotVerified。在这种情况下,我想显示一些消息,否则什么也不显示。因此,只要数据的所有行都具有相同的值,那么我想显示一条消息。这是我的jquery函数,我使用了以下逻辑。
var list = new Array();
$('input[type=hidden]').each(function (i, item) {
    list.push($(item).val());
    if(list[i]==list[i+1]) {
        fun_toastr_notify('success', 'Please verify the document');
    } else {

    }
});

我无法比较每行数据。如果所有值都相同,那么我只想显示一次我的烤面包机消息。我应该在这里使用什么逻辑?先感谢您。

我现在尝试如下。
for(var i=0;i<list.length;i++) {
    if(list[i]==list[i+1]) {
        fun_toastr_notify('success', 'Please verify the documents');
    }
}

现在我的问题是烤面包机消息将显示多次。如果所有元素相等,我只想显示一次。

最佳答案

您可能需要考虑将此逻辑放入生成 View 模型并输出标志以显示消息的代码中,而不是在渲染 View 时执行。

这大大简化了您的逻辑。一个例子:

public class YourModel {
    public List<ClientDetails> detailsbyclientId {get;set;}
    public bool AllClientsUnverified { get { return detailsbyclientId.All(client => client.currentStatus == "Unverified"); } }
}

然后在您的 View 中(在客户端<script>块内部)
if (@Model.AllClientsUnverified) {
    fun_toastr_notify('success', 'Please verify the documents');
}

10-05 20:50
查看更多